mirror of
https://github.com/minio/minio.git
synced 2024-12-24 22:25:54 -05:00
Added distributed RWMutex (#2369)
This commit is contained in:
parent
e55926e8cf
commit
3939c75345
@ -18,6 +18,7 @@ package cmd
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"github.com/minio/dsync"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ type nsParam struct {
|
|||||||
|
|
||||||
// nsLock - provides primitives for locking critical namespace regions.
|
// nsLock - provides primitives for locking critical namespace regions.
|
||||||
type nsLock struct {
|
type nsLock struct {
|
||||||
sync.RWMutex
|
*dsync.DRWMutex
|
||||||
ref uint
|
ref uint
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,6 +59,7 @@ func (n *nsLockMap) lock(volume, path string, readLock bool) {
|
|||||||
nsLk, found := n.lockMap[param]
|
nsLk, found := n.lockMap[param]
|
||||||
if !found {
|
if !found {
|
||||||
nsLk = &nsLock{
|
nsLk = &nsLock{
|
||||||
|
DRWMutex: dsync.NewDRWMutex(volume + path),
|
||||||
ref: 0,
|
ref: 0,
|
||||||
}
|
}
|
||||||
n.lockMap[param] = nsLk
|
n.lockMap[param] = nsLk
|
||||||
|
Loading…
Reference in New Issue
Block a user