diff options
| author | Paul Buetow <paul@buetow.org> | 2023-05-28 21:07:55 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2023-05-28 21:07:55 +0300 |
| commit | b1eea606aa22fef720b18017c25f850a5efbf059 (patch) | |
| tree | 593d4f1e1803dd7e1a4db20db2a1c1ec15fbea3c /internal/server/server.go | |
| parent | 37fdae0b2a78a80729c8d8bfa69835f554b00120 (diff) | |
add fan out for client votes
Diffstat (limited to 'internal/server/server.go')
| -rw-r--r-- | internal/server/server.go | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/internal/server/server.go b/internal/server/server.go index 088e36c..dc1fd90 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -10,11 +10,11 @@ import ( "codeberg.org/snonux/gorum/internal/vote" ) -func Start(ctx context.Context, conf config.Config) { +func Start(ctx context.Context, conf config.Config, quo quorum.Quorum) { go func() { for { log.Println("Starting server") - if err := run(ctx, conf); err != nil { + if err := run(ctx, conf, quo); err != nil { log.Println(err) } @@ -27,26 +27,17 @@ func Start(ctx context.Context, conf config.Config) { }() } -func run(ctx context.Context, conf config.Config) error { +func run(ctx context.Context, conf config.Config, quo quorum.Quorum) error { serverCtx, cancel := context.WithCancel(ctx) defer cancel() ch := make(chan vote.Vote) - quo := make(quorum.Quorum) go func() { for { select { case vote := <-ch: quo.Vote(vote) - winner, err := quo.Winner(conf) - if err != nil { - log.Println(err.Error()) - continue - } - log.Printf("The current leader node is %s", winner) - case <-time.After(vote.Expiry): - quo.Expire() case <-serverCtx.Done(): return } |
