From 88b716cb3bcd2dd54f3f022b46f4212b9746e555 Mon Sep 17 00:00:00 2001 From: Atsushi Watanabe Date: Sun, 3 May 2020 11:54:38 +0900 Subject: [PATCH] Don't run agent task after close Fix send on closed channel panic. --- agent.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/agent.go b/agent.go index fb24dc3..ea32c9c 100644 --- a/agent.go +++ b/agent.go @@ -191,10 +191,16 @@ func (a *Agent) run(t func(*Agent)) error { case <-a.done: return a.getErr() case a.muChan <- struct{}{}: - t(a) - + var err error + select { + case <-a.done: + // Ensure the agent is not closed + err = a.getErr() + default: + t(a) + } <-a.muChan - return nil + return err } }