aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMission Liao <mission.liao@dexon.org>2019-01-23 18:40:03 +0800
committerMission Liao <mission.liao@dexon.org>2019-01-28 16:23:18 +0800
commit38c131216e416f6f7c1916d793610e2eb3973136 (patch)
treea69dfda0fc9dc8b6b6ffbc700a92964b0e97580f
parentb1e1bc622db0ed40639dc46297155c0efb69a6d7 (diff)
downloaddexon-consensus-38c131216e416f6f7c1916d793610e2eb3973136.tar.gz
dexon-consensus-38c131216e416f6f7c1916d793610e2eb3973136.tar.zst
dexon-consensus-38c131216e416f6f7c1916d793610e2eb3973136.zip
Fixup: data race
-rw-r--r--core/syncer/consensus.go10
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)
}