guard dispatchers, ignore events sent after Close()
diff --git a/events/event_manager.go b/events/event_manager.go
index 7d7c69f..2e5abd0 100644
--- a/events/event_manager.go
+++ b/events/event_manager.go
@@ -115,6 +115,8 @@
Event: event,
Count: count,
}
+ em.Lock()
+ defer em.Unlock()
em.dispatchers[apid.EventDeliveredSelector].Send(ede)
}
}
@@ -160,6 +162,10 @@
func (d *dispatcher) Send(e apid.Event) bool {
if d != nil {
+ defer func() {
+ err := recover()
+ log.Debugf("Send %v failed: %v", e, err)
+ }()
d.channel <- e
return true
}