aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbojie <bojie@dexon.org>2019-01-17 20:17:18 +0800
committerWei-Ning Huang <w@byzantine-lab.io>2019-06-12 17:27:21 +0800
commit65045b14287ee4f789a491ae542a58f1f7d559b6 (patch)
tree3f6e96ebee44260b606d26f70162c943a76b720a
parent65e94faf4e9cb6ba1f3c9ab4035e84e8add0aa14 (diff)
downloadgo-tangerine-65045b14287ee4f789a491ae542a58f1f7d559b6.tar
go-tangerine-65045b14287ee4f789a491ae542a58f1f7d559b6.tar.gz
go-tangerine-65045b14287ee4f789a491ae542a58f1f7d559b6.tar.bz2
go-tangerine-65045b14287ee4f789a491ae542a58f1f7d559b6.tar.lz
go-tangerine-65045b14287ee4f789a491ae542a58f1f7d559b6.tar.xz
go-tangerine-65045b14287ee4f789a491ae542a58f1f7d559b6.tar.zst
go-tangerine-65045b14287ee4f789a491ae542a58f1f7d559b6.zip
blockchain: add mutex lock to prevent fork (#159)
-rw-r--r--core/blockchain.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/core/blockchain.go b/core/blockchain.go
index e6d7cdc76..99f99b64d 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()