diff options
author | ledgerwatch <akhounov@gmail.com> | 2018-07-31 15:22:33 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2018-07-31 15:22:33 +0800 |
commit | 2fbc454355f6214aee6b9480819e1a4d65bb6fcf (patch) | |
tree | 8472b6509ae72e5a7991ba5c0fdc2ee3a467f1b0 /miner/worker.go | |
parent | d6efa691872efb723ea3177a92da9e9b31c34eba (diff) | |
download | dexon-2fbc454355f6214aee6b9480819e1a4d65bb6fcf.tar.gz dexon-2fbc454355f6214aee6b9480819e1a4d65bb6fcf.tar.zst dexon-2fbc454355f6214aee6b9480819e1a4d65bb6fcf.zip |
miner: fix state locking while writing to chain (issue #16933) (#17173)
Diffstat (limited to 'miner/worker.go')
-rw-r--r-- | miner/worker.go | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/miner/worker.go b/miner/worker.go index e4e42f877..34329f849 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -316,7 +316,9 @@ func (self *worker) wait() { for _, log := range work.state.Logs() { log.BlockHash = block.Hash() } + self.currentMu.Lock() stat, err := self.chain.WriteBlockWithState(block, work.receipts, work.state) + self.currentMu.Unlock() if err != nil { log.Error("Failed writing block to chain", "err", err) continue |