diff --git a/event/eventmanager.go b/event/eventmanager.go index 04f506d..8394667 100644 --- a/event/eventmanager.go +++ b/event/eventmanager.go @@ -95,6 +95,11 @@ func (em *manager) initialize() { func (em *manager) Subscribe(eventType Type, queue Queue) { em.mapMutex.Lock() defer em.mapMutex.Unlock() + for _, sub := range em.subscribers[eventType] { + if sub == queue { + return // don't add the same queue for the same event twice... + } + } em.subscribers[eventType] = append(em.subscribers[eventType], queue) }