From c0f6d204fd932aa9a78b21da41d63515f2f71f4e Mon Sep 17 00:00:00 2001 From: Benjamin Bollen <ben@erisindustries.com> Date: Fri, 17 Jun 2016 14:30:13 +0200 Subject: [PATCH] fixes #143; godeps/tendermint/event.go: claim full lock on delete listener; refer to github.com/tendermint/go-events pr#4 for more details --- .../src/github.com/tendermint/tendermint/events/events.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Godeps/_workspace/src/github.com/tendermint/tendermint/events/events.go b/Godeps/_workspace/src/github.com/tendermint/tendermint/events/events.go index 730e7c04..b043b252 100644 --- a/Godeps/_workspace/src/github.com/tendermint/tendermint/events/events.go +++ b/Godeps/_workspace/src/github.com/tendermint/tendermint/events/events.go @@ -69,13 +69,15 @@ func (evsw *EventSwitch) RemoveListener(listenerID string) { // Get and remove listener evsw.mtx.RLock() listener := evsw.listeners[listenerID] - delete(evsw.listeners, listenerID) evsw.mtx.RUnlock() - if listener == nil { return } + evsw.mtx.Lock() + delete(evsw.listeners, listenerID) + evsw.mtx.Unlock() + // Remove callback for each event. listener.SetRemoved() for _, event := range listener.GetEvents() { -- GitLab