From de719ac4092a710e62cddf2eba7c880ab4716b37 Mon Sep 17 00:00:00 2001 From: greatroar <61184462+greatroar@users.noreply.github.com> Date: Fri, 10 Sep 2021 09:58:17 +0200 Subject: [PATCH] lib/db: Inline sync.Once in releaser (#7938) Having a pointer to a Once suggests that it is shared with other objects, but it never is. --- lib/db/backend/backend.go | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/lib/db/backend/backend.go b/lib/db/backend/backend.go index 4f6f28ba6..7ef26c1ad 100644 --- a/lib/db/backend/backend.go +++ b/lib/db/backend/backend.go @@ -154,25 +154,20 @@ func IsNotFound(err error) bool { // releaser manages counting on top of a waitgroup type releaser struct { wg *closeWaitGroup - once *sync.Once + once sync.Once } func newReleaser(wg *closeWaitGroup) (*releaser, error) { if err := wg.Add(1); err != nil { return nil, err } - return &releaser{ - wg: wg, - once: new(sync.Once), - }, nil + return &releaser{wg: wg}, nil } -func (r releaser) Release() { +func (r *releaser) Release() { // We use the Once because we may get called multiple times from // Commit() and deferred Release(). - r.once.Do(func() { - r.wg.Done() - }) + r.once.Do(r.wg.Done) } // closeWaitGroup behaves just like a sync.WaitGroup, but does not require