mirror of
https://github.com/status-im/go-waku.git
synced 2025-02-27 12:30:39 +00:00
fix: close iterator
This commit is contained in:
parent
5ff87d8e65
commit
6169a44c24
@ -256,7 +256,20 @@ func (d *DiscoveryV5) iterate(ctx context.Context) error {
|
||||
return fmt.Errorf("obtaining iterator: %w", err)
|
||||
}
|
||||
|
||||
defer iterator.Close()
|
||||
closeCh := make(chan struct{}, 1)
|
||||
defer close(closeCh)
|
||||
|
||||
// Closing iterator when context is cancelled or function is returning
|
||||
d.wg.Add(1)
|
||||
go func() {
|
||||
defer d.wg.Done()
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
iterator.Close()
|
||||
case <-closeCh:
|
||||
iterator.Close()
|
||||
}
|
||||
}()
|
||||
|
||||
for {
|
||||
if ctx.Err() != nil {
|
||||
|
@ -317,7 +317,21 @@ func (wakuPX *WakuPeerExchange) iterate(ctx context.Context) error {
|
||||
if err != nil {
|
||||
return fmt.Errorf("obtaining iterator: %w", err)
|
||||
}
|
||||
defer iterator.Close()
|
||||
|
||||
closeCh := make(chan struct{}, 1)
|
||||
defer close(closeCh)
|
||||
|
||||
// Closing iterator when context is cancelled or function is returning
|
||||
wakuPX.wg.Add(1)
|
||||
go func() {
|
||||
defer wakuPX.wg.Done()
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
iterator.Close()
|
||||
case <-closeCh:
|
||||
iterator.Close()
|
||||
}
|
||||
}()
|
||||
|
||||
for {
|
||||
if ctx.Err() != nil {
|
||||
|
Loading…
x
Reference in New Issue
Block a user