mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-20 02:57:05 +00:00
datastore: Concurrency fix, closes #77
This commit is contained in:
19
datastore/lock.go
Normal file
19
datastore/lock.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package datastore
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type HashLock [4096]sync.RWMutex
|
||||
|
||||
func (h *HashLock) Get(hash string) *sync.RWMutex {
|
||||
if len(hash) < 3 {
|
||||
return nil
|
||||
}
|
||||
i, err := strconv.ParseInt(hash[0:3], 16, 0)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
return &h[i]
|
||||
}
|
||||
Reference in New Issue
Block a user