fix: close slow event subscribers safely

This commit is contained in:
Josh Creek
2026-08-31 23:09:16 +01:00
parent 0be51ab902
commit a4bc8cdac8
3 changed files with 26 additions and 1 deletions
+4
View File
@@ -60,6 +60,10 @@ func (h *eventHub) subscribe(playerID string) *eventSubscriber {
func (h *eventHub) unsubscribe(subscriber *eventSubscriber) {
h.mu.Lock()
if _, subscribed := h.subscribers[subscriber]; !subscribed {
h.mu.Unlock()
return
}
delete(h.subscribers, subscriber)
close(subscriber.queue)
h.mu.Unlock()