From 0f5cc8bd3b8ca4d9c7a538dd55e7bdebf8e6f798 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Fri, 26 Feb 2021 09:39:24 -0800 Subject: [PATCH] fix a startup race by creating the blockstoremanager process on init --- internal/decision/blockstoremanager.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/decision/blockstoremanager.go b/internal/decision/blockstoremanager.go index 1cc09df..dc022ca 100644 --- a/internal/decision/blockstoremanager.go +++ b/internal/decision/blockstoremanager.go @@ -26,24 +26,24 @@ func newBlockstoreManager(bs bstore.Blockstore, workerCount int) *blockstoreMana bs: bs, workerCount: workerCount, jobs: make(chan func()), + px: process.WithTeardown(func() error { return nil }), } } func (bsm *blockstoreManager) start(px process.Process) { - bsm.px = px - + px.AddChild(bsm.px) // Start up workers for i := 0; i < bsm.workerCount; i++ { - px.Go(func(px process.Process) { - bsm.worker() + bsm.px.Go(func(px process.Process) { + bsm.worker(px) }) } } -func (bsm *blockstoreManager) worker() { +func (bsm *blockstoreManager) worker(px process.Process) { for { select { - case <-bsm.px.Closing(): + case <-px.Closing(): return case job := <-bsm.jobs: job() -- GitLab