diff options
author | Mission Liao <mission.liao@dexon.org> | 2019-01-23 18:40:03 +0800 |
---|---|---|
committer | Mission Liao <mission.liao@dexon.org> | 2019-01-28 16:23:18 +0800 |
commit | 38c131216e416f6f7c1916d793610e2eb3973136 (patch) | |
tree | a69dfda0fc9dc8b6b6ffbc700a92964b0e97580f | |
parent | b1e1bc622db0ed40639dc46297155c0efb69a6d7 (diff) | |
download | dexon-consensus-38c131216e416f6f7c1916d793610e2eb3973136.tar.gz dexon-consensus-38c131216e416f6f7c1916d793610e2eb3973136.tar.zst dexon-consensus-38c131216e416f6f7c1916d793610e2eb3973136.zip |
Fixup: data race
-rw-r--r-- | core/syncer/consensus.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/core/syncer/consensus.go b/core/syncer/consensus.go index b59e6b5..1f89fb6 100644 --- a/core/syncer/consensus.go +++ b/core/syncer/consensus.go @@ -867,11 +867,19 @@ func (con *Consensus) stopAgreement() { for _, a := range con.agreements { if a.inputChan != nil { close(a.inputChan) - a.inputChan = nil } } }() con.agreementWaitGroup.Wait() + func() { + con.lock.Lock() + defer con.lock.Unlock() + for _, a := range con.agreements { + if a.inputChan != nil { + a.inputChan = nil + } + } + }() close(con.receiveChan) close(con.pullChan) } |