diff --git a/chain/vm/execution.go b/chain/vm/execution.go index 8db0e4313..66f82280b 100644 --- a/chain/vm/execution.go +++ b/chain/vm/execution.go @@ -73,9 +73,11 @@ func (e *vmExecutor) Done() { e.lk.Lock() defer e.lk.Unlock() - e.token.Done() - e.token = nil - e.done = true + if !e.done { + e.token.Done() + e.token = nil + e.done = true + } } type executionToken struct {