re-check in write lock on hash of mutexes for collections
This commit is contained in:
parent
be900ca877
commit
8308b199f7
11
scribble.go
11
scribble.go
|
@ -40,13 +40,12 @@ type (
|
||||||
func New(dir string, logger hatchet.Logger) (*Driver, error) {
|
func New(dir string, logger hatchet.Logger) (*Driver, error) {
|
||||||
dir = filepath.Clean(dir)
|
dir = filepath.Clean(dir)
|
||||||
|
|
||||||
fmt.Printf("Creating database directory at '%v'...\n", dir)
|
|
||||||
|
|
||||||
//
|
|
||||||
if logger == nil {
|
if logger == nil {
|
||||||
logger = hatchet.DevNullLogger{}
|
logger = hatchet.DevNullLogger{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logger.Info("Creating database directory at '%v'...\n", dir)
|
||||||
|
|
||||||
//
|
//
|
||||||
d := &Driver{
|
d := &Driver{
|
||||||
dir: dir,
|
dir: dir,
|
||||||
|
@ -218,8 +217,10 @@ func (d *Driver) getOrCreateMutex(collection string) sync.Mutex {
|
||||||
if !ok {
|
if !ok {
|
||||||
|
|
||||||
d.maplock.Lock()
|
d.maplock.Lock()
|
||||||
c = sync.Mutex{}
|
if c, ok = d.mutexes[collection]; !ok {
|
||||||
d.mutexes[collection] = c
|
c = sync.Mutex{}
|
||||||
|
d.mutexes[collection] = c
|
||||||
|
}
|
||||||
d.maplock.Unlock()
|
d.maplock.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user