From 93b32777632eb79393e4f6fe0b752665c8e511ff Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 13 Jun 2023 00:59:15 +0300 Subject: lower vote expiry, send every expiry interval to partners my move anyway --- Taskfile.yml | 3 +++ internal/quorum/quorum.go | 14 ++++++-------- internal/vote/vote.go | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Taskfile.yml b/Taskfile.yml index 886e8b6..3d16722 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -4,6 +4,9 @@ tasks: build: cmds: - go build -o gorum cmd/gorum/main.go + race: + cmds: + - go build -race -o gorum cmd/gorum/main.go test: cmds: - go clean -testcache diff --git a/internal/quorum/quorum.go b/internal/quorum/quorum.go index e3f0eeb..52cf6ee 100644 --- a/internal/quorum/quorum.go +++ b/internal/quorum/quorum.go @@ -42,14 +42,12 @@ func (quo Quorum) Start(ctx context.Context) <-chan vote.Vote { for { select { case <-time.After(vote.Expiry): - if newVote, changed := quo.makeMyVote(); changed { - quo.score() - ch <- newVote - } - case vote := <-quo.voteCh: - quo.vote(vote) - if newVote, changed := quo.makeMyVote(); changed { - ch <- newVote + myVote, _ := quo.makeMyVote() + ch <- myVote + case v := <-quo.voteCh: + quo.vote(v) + if myVote, changed := quo.makeMyVote(); changed { + ch <- myVote } quo.score() case <-ctx.Done(): diff --git a/internal/vote/vote.go b/internal/vote/vote.go index 8ad5a37..91775d0 100644 --- a/internal/vote/vote.go +++ b/internal/vote/vote.go @@ -6,7 +6,7 @@ import ( "time" ) -const Expiry = 20 * time.Second +const Expiry = 10 * time.Second type Vote struct { FromID string -- cgit v1.2.3