diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2018-10-26 09:57:08 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-26 09:57:08 +0800 |
commit | 1aa61d3287f63222a6cac8a49be0080a37cad8d6 (patch) | |
tree | 2f6141aa97615178978aac9e2b9db1d894171137 /core/consensus.go | |
parent | 1e84ff2da76534b7b2412d2f4e862090dc31192c (diff) | |
download | dexon-consensus-1aa61d3287f63222a6cac8a49be0080a37cad8d6.tar dexon-consensus-1aa61d3287f63222a6cac8a49be0080a37cad8d6.tar.gz dexon-consensus-1aa61d3287f63222a6cac8a49be0080a37cad8d6.tar.bz2 dexon-consensus-1aa61d3287f63222a6cac8a49be0080a37cad8d6.tar.lz dexon-consensus-1aa61d3287f63222a6cac8a49be0080a37cad8d6.tar.xz dexon-consensus-1aa61d3287f63222a6cac8a49be0080a37cad8d6.tar.zst dexon-consensus-1aa61d3287f63222a6cac8a49be0080a37cad8d6.zip |
core: Lock entire lattice.ProcessBlock (#259)
* Lock entire ProcessBlock
* Lock Consensus.processBlock
Diffstat (limited to 'core/consensus.go')
-rw-r--r-- | core/consensus.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/core/consensus.go b/core/consensus.go index ab59a67..05f93e1 100644 --- a/core/consensus.go +++ b/core/consensus.go @@ -830,6 +830,10 @@ func (con *Consensus) processBlock(block *types.Block) (err error) { if err = con.db.Put(*block); err != nil && err != blockdb.ErrBlockExists { return } + con.lock.Lock() + defer con.lock.Unlock() + // Block processed by lattice can be out-of-order. But the output of lattice + // (deliveredBlocks) cannot. deliveredBlocks, err := con.lattice.ProcessBlock(block) if err != nil { return |