diff --git a/extern/sector-storage/sched.go b/extern/sector-storage/sched.go index 2ebe8c737..831a2615f 100644 --- a/extern/sector-storage/sched.go +++ b/extern/sector-storage/sched.go @@ -774,14 +774,19 @@ func (sh *scheduler) dropWorker(wid WorkerID) { } func (sh *scheduler) workerCleanup(wid WorkerID, w *workerHandle) { - if !w.cleanupStarted { + select { + case <-w.closingMgr: + default: close(w.closingMgr) } + + sh.workersLk.Unlock() select { case <-w.closedMgr: case <-time.After(time.Second): log.Errorf("timeout closing worker manager goroutine %d", wid) } + sh.workersLk.Lock() if !w.cleanupStarted { w.cleanupStarted = true