sealing sched: Fix deadlock in worker watcher

This commit is contained in:
Łukasz Magiera 2020-08-13 12:17:24 +02:00
parent f212ca60c8
commit 632fd36205

View File

@ -87,11 +87,14 @@ func (sh *scheduler) runWorkerWatcher() {
}
log.Warnf("worker %d dropped", wid)
select {
case sh.workerClosing <- wid:
case <-sh.closing:
return
}
// send in a goroutine to avoid a deadlock between workerClosing / watchClosing
go func() {
select {
case sh.workerClosing <- wid:
case <-sh.closing:
return
}
}()
}
}
}