diff --git a/relaypool.go b/relaypool.go index 9a6d4fe..550a7e9 100644 --- a/relaypool.go +++ b/relaypool.go @@ -152,9 +152,11 @@ func (r *RelayPool) Add(url string, policy RelayPoolPolicy) error { continue } - subscription.Events <- EventMessage{ - Relay: nm, - Event: event, + if !subscription.stopped { + subscription.Events <- EventMessage{ + Relay: nm, + Event: event, + } } } } diff --git a/subscription.go b/subscription.go index 1dec46d..880bc73 100644 --- a/subscription.go +++ b/subscription.go @@ -9,6 +9,8 @@ type Subscription struct { started bool UniqueEvents chan Event + + stopped bool } type EventMessage struct { @@ -24,6 +26,7 @@ func (subscription Subscription) Unsub() { }) } + subscription.stopped = true if subscription.Events != nil { close(subscription.Events) } @@ -57,7 +60,9 @@ func (subscription Subscription) startHandlingUnique() { continue } seen[em.Event.ID] = struct{}{} - subscription.UniqueEvents <- em.Event + if !subscription.stopped { + subscription.UniqueEvents <- em.Event + } } }