From 3201206d4f53ab3c9a04b13e1ee7345d4acf1a61 Mon Sep 17 00:00:00 2001 From: meatherly Date: Mon, 6 Dec 2021 16:21:35 -0600 Subject: [PATCH] locking the event manager before mutating it. this should resolve issue #950 --- lib/event/manager.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/event/manager.go b/lib/event/manager.go index 23e4f31c8..e4f69946e 100644 --- a/lib/event/manager.go +++ b/lib/event/manager.go @@ -55,20 +55,20 @@ func (e *Manager) addEventListener(eventName string, callback func(...interface{ return fmt.Errorf("nil callback bassed to addEventListener") } - // Check event has been registered before - if e.listeners[eventName] == nil { - e.listeners[eventName] = []*eventListener{} - } - // Create the callback listener := &eventListener{ callback: callback, counter: counter, } + e.mu.Lock() + // Check event has been registered before + if e.listeners[eventName] == nil { + e.listeners[eventName] = []*eventListener{} + } // Register listener e.listeners[eventName] = append(e.listeners[eventName], listener) - + e.mu.Unlock() // All good mate return nil }