@cryptotaxi247 / kubo / commits / aa4c0d1b9

fix(bitswap): release the lock last

The area above the lock was getting big. Moving this up to avoid mistakes down the road.

Brian Tiger Chow committed Jan 18, 2015 at 23:40 UTC aa4c0d1b9043bdb62caedb6da36e1dbf05622f7c
1 file changed +3 -3
exchange/bitswap/decision/engine.go
+3 -3
@@ -160,6 +160,9 @@ func (e *Engine) Peers() []peer.ID {
160 // MessageReceived performs book-keeping. Returns error if passed invalid
161 // arguments.
162 func (e *Engine) MessageReceived(p peer.ID, m bsmsg.BitSwapMessage) error {
163 + e.lock.Lock()
164 + defer e.lock.Unlock()
165 +
166 log := log.Prefix("bitswap.Engine.MessageReceived(%s)", p)
167 log.Debugf("enter. %d entries %d blocks", len(m.Wantlist()), len(m.Blocks()))
168 defer log.Debugf("exit")
@@ -175,9 +178,6 @@ func (e *Engine) MessageReceived(p peer.ID, m bsmsg.BitSwapMessage) error {
178 }
179 }()
180
178 - e.lock.Lock()
179 - defer e.lock.Unlock()
180 -
181 l := e.findOrCreate(p)
182 if m.Full() {
183 l.wantList = wl.New()