diff --git a/pool.go b/pool.go index a217952..a5e710b 100644 --- a/pool.go +++ b/pool.go @@ -60,6 +60,9 @@ func (pool *SimplePool) SubMany( uniqueEvents := make(chan *Event) seenAlready := xsync.NewMapOf[bool]() + pending := xsync.Counter{} + initial := len(urls) + pending.Add(int64(initial)) for _, url := range urls { go func(nm string) { relay, err := pool.EnsureRelay(nm) @@ -78,6 +81,11 @@ func (pool *SimplePool) SubMany( uniqueEvents <- evt } } + + pending.Dec() + if pending.Value() == 0 { + close(uniqueEvents) + } }(NormalizeURL(url)) }