aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/dexon-foundation/dexon-consensus/core/syncer/consensus.go
diff options
context:
space:
mode:
authorJimmy Hu <jimmy.hu@dexon.org>2019-03-21 08:37:33 +0800
committerWei-Ning Huang <w@dexon.org>2019-04-09 21:32:58 +0800
commit9ad0e05b15f8b36f38f19cc1b24dc8b93e845844 (patch)
tree8dd2847c1003a1de9757990ebb53a8322cba333b /vendor/github.com/dexon-foundation/dexon-consensus/core/syncer/consensus.go
parent86eb10fc5f853507baafde992b81647d41f2a587 (diff)
downloaddexon-9ad0e05b15f8b36f38f19cc1b24dc8b93e845844.tar
dexon-9ad0e05b15f8b36f38f19cc1b24dc8b93e845844.tar.gz
dexon-9ad0e05b15f8b36f38f19cc1b24dc8b93e845844.tar.bz2
dexon-9ad0e05b15f8b36f38f19cc1b24dc8b93e845844.tar.lz
dexon-9ad0e05b15f8b36f38f19cc1b24dc8b93e845844.tar.xz
dexon-9ad0e05b15f8b36f38f19cc1b24dc8b93e845844.tar.zst
dexon-9ad0e05b15f8b36f38f19cc1b24dc8b93e845844.zip
core/vm: remove round from addDKG functions (#279)
* vendor: sync to latest core * core/vm: remove addDKG functions * core: fix conflict
Diffstat (limited to 'vendor/github.com/dexon-foundation/dexon-consensus/core/syncer/consensus.go')
-rw-r--r--vendor/github.com/dexon-foundation/dexon-consensus/core/syncer/consensus.go23
1 files changed, 18 insertions, 5 deletions
diff --git a/vendor/github.com/dexon-foundation/dexon-consensus/core/syncer/consensus.go b/vendor/github.com/dexon-foundation/dexon-consensus/core/syncer/consensus.go
index f2f8f9e66..2eeee9d07 100644
--- a/vendor/github.com/dexon-foundation/dexon-consensus/core/syncer/consensus.go
+++ b/vendor/github.com/dexon-foundation/dexon-consensus/core/syncer/consensus.go
@@ -168,6 +168,16 @@ func (con *Consensus) assureBuffering() {
}
// Make sure con.roundEvt stopped before stopping con.agreementModule.
con.waitGroup.Add(1)
+ // Register a round event handler to reset node set cache, this handler
+ // should be the highest priority.
+ con.roundEvt.Register(func(evts []utils.RoundEventParam) {
+ for _, e := range evts {
+ if e.Reset == 0 {
+ continue
+ }
+ con.nodeSetCache.Purge(e.Round + 1)
+ }
+ })
// Register a round event handler to notify CRS to agreementModule.
con.roundEvt.Register(func(evts []utils.RoundEventParam) {
con.waitGroup.Add(1)
@@ -263,11 +273,14 @@ func (con *Consensus) ForceSync(skip bool) {
con.setupConfigsUntilRound(block.Position.Round + core.ConfigRoundShift - 1)
con.syncedLastBlock = &block
con.stopBuffering()
- con.dummyCancel, con.dummyFinished = utils.LaunchDummyReceiver(
- context.Background(), con.network.ReceiveChan(),
- func(msg interface{}) {
- con.dummyMsgBuffer = append(con.dummyMsgBuffer, msg)
- })
+ // We might call stopBuffering without calling assureBuffering.
+ if con.dummyCancel == nil {
+ con.dummyCancel, con.dummyFinished = utils.LaunchDummyReceiver(
+ context.Background(), con.network.ReceiveChan(),
+ func(msg interface{}) {
+ con.dummyMsgBuffer = append(con.dummyMsgBuffer, msg)
+ })
+ }
con.syncedSkipNext = skip
}