From fe0302d8ff14039c09cb543323975e2841c702df Mon Sep 17 00:00:00 2001 From: Donald Adu-Poku Date: Mon, 27 Jan 2020 11:29:56 +0000 Subject: [PATCH] fix regenHandler shutdown. This fixes a case where queueRegenEvent blocks indefinitely in regenHandler when template generator is shuting down. --- mining.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mining.go b/mining.go index 89d544e9..0dbab0fb 100644 --- a/mining.go +++ b/mining.go @@ -3127,7 +3127,12 @@ func (g *BgBlkTmplGenerator) regenHandler(ctx context.Context) { if err != nil { g.setCurrentTemplate(nil, turUnknown, err) } else { - g.queueRegenEvent <- regenEvent{rtBlockConnected, tipBlock} + select { + case <-ctx.Done(): + g.wg.Done() + return + case g.queueRegenEvent <- regenEvent{rtBlockConnected, tipBlock}: + } } state := makeRegenHandlerState()