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