From 8fe5438b5957bc3a7d2b1f9cc57e47d95c04503e Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Sun, 6 Jul 2014 19:21:58 +0200 Subject: [PATCH] Don't need read lock in files/set --- files/set.go | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/files/set.go b/files/set.go index 845fd045..47969e1e 100644 --- a/files/set.go +++ b/files/set.go @@ -23,7 +23,7 @@ type bitset uint64 type Set struct { changes map[protocol.NodeID]uint64 - mutex sync.RWMutex + mutex sync.Mutex repo string db *leveldb.DB } @@ -74,8 +74,6 @@ func (s *Set) WithNeed(node protocol.NodeID, fn fileIterator) { if debug { l.Debugf("%s Need(%v)", s.repo, node) } - s.mutex.RLock() - defer s.mutex.RUnlock() ldbWithNeed(s.db, []byte(s.repo), node[:], fn) } @@ -83,8 +81,6 @@ func (s *Set) WithHave(node protocol.NodeID, fn fileIterator) { if debug { l.Debugf("%s WithHave(%v)", s.repo, node) } - s.mutex.RLock() - defer s.mutex.RUnlock() ldbWithHave(s.db, []byte(s.repo), node[:], fn) } @@ -92,8 +88,6 @@ func (s *Set) WithGlobal(fn fileIterator) { if debug { l.Debugf("%s WithGlobal()", s.repo) } - s.mutex.RLock() - defer s.mutex.RUnlock() ldbWithGlobal(s.db, []byte(s.repo), fn) } @@ -102,8 +96,6 @@ func (s *Set) Get(node protocol.NodeID, file string) scanner.File { } func (s *Set) GetGlobal(file string) scanner.File { - s.mutex.RLock() - defer s.mutex.RUnlock() return ldbGetGlobal(s.db, []byte(s.repo), []byte(file)) } @@ -112,7 +104,7 @@ func (s *Set) Availability(file string) []protocol.NodeID { } func (s *Set) Changes(node protocol.NodeID) uint64 { - s.mutex.RLock() - defer s.mutex.RUnlock() + s.mutex.Lock() + defer s.mutex.Unlock() return s.changes[node] }