diff --git a/pool.go b/pool.go index f6bd1ae..627d85d 100644 --- a/pool.go +++ b/pool.go @@ -86,17 +86,17 @@ func (pool *SimplePool) subMany(ctx context.Context, urls []string, filters Filt } for evt := range sub.Events { - stop := false if unique { - _, stop = seenAlready.LoadOrStore(evt.ID, true) - } - if !stop { - select { - case events <- IncomingEvent{Event: evt, Relay: relay}: - case <-ctx.Done(): - return + if _, seen := seenAlready.LoadOrStore(evt.ID, true); seen { + continue } } + + select { + case events <- IncomingEvent{Event: evt, Relay: relay}: + case <-ctx.Done(): + return + } } pending.Dec() @@ -160,17 +160,17 @@ func (pool *SimplePool) subManyEose(ctx context.Context, urls []string, filters return } - stop := false if unique { - _, stop = seenAlready.LoadOrStore(evt.ID, true) - } - if !stop { - select { - case events <- IncomingEvent{Event: evt, Relay: relay}: - case <-ctx.Done(): - return + if _, seen := seenAlready.LoadOrStore(evt.ID, true); seen { + continue } } + + select { + case events <- IncomingEvent{Event: evt, Relay: relay}: + case <-ctx.Done(): + return + } } } }(NormalizeURL(url))