commit 63d46d46917273ae2ec5c3f2bbe415c207843579
parent ea3b094dbc60551708a3824c754ad495a733e269
Author: sin <sin@2f30.org>
Date: Tue, 30 Apr 2013 13:55:21 +0100
use embedded locks in mapfs
Diffstat:
1 file changed, 25 insertions(+), 25 deletions(-)
diff --git a/src/mapfs/mapfs.go b/src/mapfs/mapfs.go
@@ -18,10 +18,10 @@ type Mapfs struct {
path string
prefix string
dict map[int]mapfsVal
- lock sync.Mutex
cacheOnly bool
encrypt bool
cipher *blowfish.Cipher
+ sync.Mutex
}
type mapfsVal struct {
@@ -34,8 +34,8 @@ type MapIter func() (key int, data []byte, ok bool)
func MakeMapIter(m *Mapfs) MapIter {
i := 0
return func() (key int, data []byte, ok bool) {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
for i < len(m.dict) {
v, ok := m.dict[i]
if ok {
@@ -81,8 +81,8 @@ func NewEncryptedMapfs(name string, path string, prefix string, key string) *Map
// Sync dirty entries to disk
func (m *Mapfs) Sync() error {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
if m.cacheOnly {
return nil
}
@@ -106,15 +106,15 @@ func (m *Mapfs) Sync() error {
}
func (m *Mapfs) CacheOnly(flag bool) {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
m.cacheOnly = flag
}
// Print map
func (m *Mapfs) String() string {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
s := fmt.Sprintf("*** %s MAP DUMP ***\n", m.name)
for k, v := range m.dict {
dirty := ""
@@ -131,8 +131,8 @@ func (m *Mapfs) String() string {
// Mark all entries as synced but do not actually write them out to disk
func (m *Mapfs) virtSync() {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
for k, v := range m.dict {
m.dict[k] = mapfsVal{false, v.data}
}
@@ -177,8 +177,8 @@ func (m *Mapfs) Load() error {
// Count how many instances of `buf' exist in the map
func (m *Mapfs) CountMatches(buf []byte) int {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
i := 0
raw := buf
if m.encrypt {
@@ -194,8 +194,8 @@ func (m *Mapfs) CountMatches(buf []byte) int {
}
func (m *Mapfs) Put(key int, buf []byte) error {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
if key < 0 {
return fmt.Errorf("Invalid key: %d", key)
}
@@ -214,8 +214,8 @@ func (m *Mapfs) Put(key int, buf []byte) error {
// Append buf to the map
func (m *Mapfs) Append(buf []byte) (int, error) {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
if m.encrypt {
ct := m.encryptBuf(buf)
key := len(m.dict)
@@ -229,8 +229,8 @@ func (m *Mapfs) Append(buf []byte) (int, error) {
// Return the raw data based on the key
func (m *Mapfs) Get(key int) ([]byte, error) {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
if len(m.dict) == 0 {
return nil, fmt.Errorf("Empty map, can't fetch entry")
}
@@ -246,8 +246,8 @@ func (m *Mapfs) Get(key int) ([]byte, error) {
}
func (m *Mapfs) Rand() ([]byte, int) {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
idx := rand.Intn(len(m.dict))
i := 0
for k, _ := range m.dict {
@@ -265,8 +265,8 @@ func (m *Mapfs) Rand() ([]byte, int) {
}
func (m *Mapfs) Empty() bool {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
if len(m.dict) == 0 {
return true
}
@@ -274,8 +274,8 @@ func (m *Mapfs) Empty() bool {
}
func (m *Mapfs) Len() int {
- m.lock.Lock()
- defer m.lock.Unlock()
+ m.Lock()
+ defer m.Unlock()
return len(m.dict)
}