mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-27 16:07:42 +08:00
Merge pull request #5018 from forstmeier/fix/refs-goroutine-leak
Fix goroutine leaks in refs.go
This commit is contained in:
@ -129,7 +129,10 @@ NOTE: List all references recursively by using the flag '-r'.
|
|||||||
|
|
||||||
for _, o := range objs {
|
for _, o := range objs {
|
||||||
if _, err := rw.WriteRefs(o); err != nil {
|
if _, err := rw.WriteRefs(o); err != nil {
|
||||||
out <- &RefWrapper{Err: err.Error()}
|
select {
|
||||||
|
case out <- &RefWrapper{Err: err.Error()}:
|
||||||
|
case <-ctx.Done():
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -169,7 +172,11 @@ Displays the hashes of all local objects.
|
|||||||
defer close(out)
|
defer close(out)
|
||||||
|
|
||||||
for k := range allKeys {
|
for k := range allKeys {
|
||||||
out <- &RefWrapper{Ref: k.String()}
|
select {
|
||||||
|
case out <- &RefWrapper{Ref: k.String()}:
|
||||||
|
case <-req.Context().Done():
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user