Unexport the RWMutex in MemMapFs
diff --git a/memmap.go b/memmap.go
index e8e7824..3cfec11 100644
--- a/memmap.go
+++ b/memmap.go
@@ -27,7 +27,7 @@
)
type MemMapFs struct {
- sync.RWMutex
+ mu sync.RWMutex
data map[string]File
init sync.Once
}
@@ -48,11 +48,11 @@
func (m *MemMapFs) Create(name string) (File, error) {
name = normalizePath(name)
- m.Lock()
+ m.mu.Lock()
file := mem.CreateFile(name)
m.getData()[name] = file
m.registerWithParent(file)
- m.Unlock()
+ m.mu.Unlock()
return file, nil
}
@@ -135,9 +135,9 @@
func (m *MemMapFs) Mkdir(name string, perm os.FileMode) error {
name = normalizePath(name)
- m.RLock()
+ m.mu.RLock()
x, ok := m.getData()[name]
- m.RUnlock()
+ m.mu.RUnlock()
if ok {
// Only return ErrFileExists if it's a file, not a directory.
i, err := x.Stat()
@@ -148,11 +148,11 @@
return err
}
} else {
- m.Lock()
+ m.mu.Lock()
item := mem.CreateDir(name)
m.getData()[name] = item
m.registerWithParent(item)
- m.Unlock()
+ m.mu.Unlock()
}
return nil
}
@@ -178,14 +178,14 @@
func (m *MemMapFs) Open(name string) (File, error) {
name = normalizePath(name)
- m.RLock()
+ m.mu.RLock()
f, ok := m.getData()[name]
ff, ok := f.(*mem.File)
if ok {
ff.Open()
}
- m.RUnlock()
+ m.mu.RUnlock()
if ok {
return f, nil
@@ -236,8 +236,8 @@
func (m *MemMapFs) Remove(name string) error {
name = normalizePath(name)
- m.Lock()
- defer m.Unlock()
+ m.mu.Lock()
+ defer m.mu.Unlock()
if _, ok := m.getData()[name]; ok {
m.unRegisterWithParent(name)
@@ -250,20 +250,20 @@
func (m *MemMapFs) RemoveAll(path string) error {
path = normalizePath(path)
- m.Lock()
+ m.mu.Lock()
m.unRegisterWithParent(path)
- m.Unlock()
+ m.mu.Unlock()
- m.RLock()
- defer m.RUnlock()
+ m.mu.RLock()
+ defer m.mu.RUnlock()
for p, _ := range m.getData() {
if strings.HasPrefix(p, path) {
- m.RUnlock()
- m.Lock()
+ m.mu.RUnlock()
+ m.mu.Lock()
delete(m.getData(), p)
- m.Unlock()
- m.RLock()
+ m.mu.Unlock()
+ m.mu.RLock()
}
}
return nil
@@ -277,20 +277,20 @@
return nil
}
- m.RLock()
- defer m.RUnlock()
+ m.mu.RLock()
+ defer m.mu.RUnlock()
if _, ok := m.getData()[oldname]; ok {
if _, ok := m.getData()[newname]; !ok {
- m.RUnlock()
- m.Lock()
+ m.mu.RUnlock()
+ m.mu.Lock()
m.unRegisterWithParent(oldname)
file := m.getData()[oldname].(*mem.File)
delete(m.getData(), oldname)
mem.ChangeFileName(file, newname)
m.getData()[newname] = file
m.registerWithParent(file)
- m.Unlock()
- m.RLock()
+ m.mu.Unlock()
+ m.mu.RLock()
} else {
return ErrDestinationExists
}
@@ -318,9 +318,9 @@
ff, ok := f.(*mem.File)
if ok {
- m.Lock()
+ m.mu.Lock()
mem.SetMode(ff, mode)
- m.Unlock()
+ m.mu.Unlock()
} else {
return errors.New("Unable to Chmod Memory File")
}
@@ -336,9 +336,9 @@
ff, ok := f.(*mem.File)
if ok {
- m.Lock()
+ m.mu.Lock()
mem.SetModTime(ff, mtime)
- m.Unlock()
+ m.mu.Unlock()
} else {
return errors.New("Unable to Chtime Memory File")
}