diff options
author | bojie <bojie@dexon.org> | 2019-01-17 20:17:18 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-03-12 12:19:09 +0800 |
commit | cd0d64a6deba5e1fef2b71e341afa67e09c1b639 (patch) | |
tree | 9aaa3d35c57fd43ee0878e9787178e015cdb2c88 | |
parent | 5d8993b8c01668589713e30d4431f404339cacf4 (diff) | |
download | dexon-cd0d64a6deba5e1fef2b71e341afa67e09c1b639.tar.gz dexon-cd0d64a6deba5e1fef2b71e341afa67e09c1b639.tar.zst dexon-cd0d64a6deba5e1fef2b71e341afa67e09c1b639.zip |
blockchain: add mutex lock to prevent fork (#159)
-rw-r--r-- | core/blockchain.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/core/blockchain.go b/core/blockchain.go index fe7ad3dd8..80d11becd 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -1818,7 +1818,6 @@ func (bc *BlockChain) ProcessBlock(block *types.Block, witness *coreTypes.Witnes func (bc *BlockChain) processBlock( block *types.Block, witness *coreTypes.Witness) (*common.Hash, []interface{}, []*types.Log, error) { - // Pre-checks passed, start the full block imports bc.wg.Add(1) defer bc.wg.Done() @@ -1941,6 +1940,12 @@ func (bc *BlockChain) processBlock( } func (bc *BlockChain) ProcessEmptyBlock(block *types.Block) (*common.Hash, error) { + bc.wg.Add(1) + defer bc.wg.Done() + + bc.chainmu.Lock() + defer bc.chainmu.Unlock() + bstart := time.Now() var stats = insertStats{startTime: mclock.Now()} var header = block.Header() |