Skip to content
Snippets Groups Projects
Commit af56f30b authored by Silas Davis's avatar Silas Davis Committed by GitHub
Browse files

Merge pull request #145 from...

Merge pull request #145 from benjaminbollen/issue143_concurrency_bug_in_tendermint_event_remove_listener

Issue #143 concurrency bug in godeps/tendermint/event RemoveListener
parents e414752d c0f6d204
Loading
...@@ -69,13 +69,15 @@ func (evsw *EventSwitch) RemoveListener(listenerID string) { ...@@ -69,13 +69,15 @@ func (evsw *EventSwitch) RemoveListener(listenerID string) {
// Get and remove listener // Get and remove listener
evsw.mtx.RLock() evsw.mtx.RLock()
listener := evsw.listeners[listenerID] listener := evsw.listeners[listenerID]
delete(evsw.listeners, listenerID)
evsw.mtx.RUnlock() evsw.mtx.RUnlock()
if listener == nil { if listener == nil {
return return
} }
evsw.mtx.Lock()
delete(evsw.listeners, listenerID)
evsw.mtx.Unlock()
// Remove callback for each event. // Remove callback for each event.
listener.SetRemoved() listener.SetRemoved()
for _, event := range listener.GetEvents() { for _, event := range listener.GetEvents() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment