diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2018-11-20 13:51:27 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@byzantine-lab.io> | 2019-06-12 17:27:18 +0800 |
commit | 194c8fdc922b4173cf433e8f92711459b97c3ab0 (patch) | |
tree | 337ebd9c4a22cec51e32d6f03d15988156ad137b /vendor/github.com/dexon-foundation/dexon-consensus/core/agreement.go | |
parent | d035ac7c8c624fc884dbc300a2ec7dcaf8dc1905 (diff) | |
download | go-tangerine-194c8fdc922b4173cf433e8f92711459b97c3ab0.tar go-tangerine-194c8fdc922b4173cf433e8f92711459b97c3ab0.tar.gz go-tangerine-194c8fdc922b4173cf433e8f92711459b97c3ab0.tar.bz2 go-tangerine-194c8fdc922b4173cf433e8f92711459b97c3ab0.tar.lz go-tangerine-194c8fdc922b4173cf433e8f92711459b97c3ab0.tar.xz go-tangerine-194c8fdc922b4173cf433e8f92711459b97c3ab0.tar.zst go-tangerine-194c8fdc922b4173cf433e8f92711459b97c3ab0.zip |
vendor: sync to latest core (#37)
Diffstat (limited to 'vendor/github.com/dexon-foundation/dexon-consensus/core/agreement.go')
-rw-r--r-- | vendor/github.com/dexon-foundation/dexon-consensus/core/agreement.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/vendor/github.com/dexon-foundation/dexon-consensus/core/agreement.go b/vendor/github.com/dexon-foundation/dexon-consensus/core/agreement.go index f31b7efba..ff1c71a7c 100644 --- a/vendor/github.com/dexon-foundation/dexon-consensus/core/agreement.go +++ b/vendor/github.com/dexon-foundation/dexon-consensus/core/agreement.go @@ -232,6 +232,8 @@ func isStop(aID types.Position) bool { // clocks returns how many time this state is required. func (a *agreement) clocks() int { + a.data.lock.RLock() + defer a.data.lock.RUnlock() return a.state.clocks() } @@ -250,6 +252,14 @@ func (a *agreement) agreementID() types.Position { // nextState is called at the specific clock time. func (a *agreement) nextState() (err error) { + if func() bool { + a.lock.RLock() + defer a.lock.RUnlock() + return a.hasOutput + }() { + a.state = newSleepState(a.data) + return + } a.state, err = a.state.nextState() return } |