Added distributed RWMutex (#2369)

This commit is contained in:
Frank 2016-08-06 01:44:23 -07:00 committed by Harshavardhana
parent e55926e8cf
commit 3939c75345

View File

@ -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