From 725eefaeb0e8b34ac218b57cc30ea37137f763af Mon Sep 17 00:00:00 2001 From: Overbool Date: Fri, 7 Sep 2018 23:12:50 +0800 Subject: [PATCH] fix(commands): fix filestore.go goroutine leak License: MIT Signed-off-by: Overbool --- core/commands/filestore.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/commands/filestore.go b/core/commands/filestore.go index 9d78a8df1..709eb7677 100644 --- a/core/commands/filestore.go +++ b/core/commands/filestore.go @@ -218,11 +218,18 @@ var dupsFileStore = &oldCmds.Command{ for cid := range ch { have, err := fs.MainBlockstore().Has(cid) if err != nil { - out <- &RefWrapper{Err: err.Error()} + select { + case out <- &RefWrapper{Err: err.Error()}: + case <-req.Context().Done(): + } return } if have { - out <- &RefWrapper{Ref: cid.String()} + select { + case out <- &RefWrapper{Ref: cid.String()}: + case <-req.Context().Done(): + return + } } } }()