Skip to content

Commit

Permalink
PR FIXUP - Move close of closing chan to within lock
Browse files Browse the repository at this point in the history
Also removed the Do as it becomes pointless on this side of the lock.
  • Loading branch information
AndrewSisley committed Mar 31, 2023
1 parent a5abd9d commit 737f291
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions datastore/memory/memory.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,9 @@ type Datastore struct {
inFlightTxn *btree.BTreeG[dsTxn]
commit chan commit

closing chan struct{}
closed bool
closeLk sync.RWMutex
closeOnce sync.Once
closing chan struct{}
closed bool
closeLk sync.RWMutex
}

var _ ds.Datastore = (*Datastore)(nil)
Expand Down Expand Up @@ -117,15 +116,14 @@ func (d *Datastore) newBasicBatch() ds.Batch {
}

func (d *Datastore) Close() error {
d.closeOnce.Do(func() {
close(d.closing)
})
d.closeLk.Lock()
defer d.closeLk.Unlock()
if d.closed {
return ErrClosed
}

d.closed = true
close(d.closing)
close(d.commit)
return nil
}
Expand Down

0 comments on commit 737f291

Please sign in to comment.