From 082f95817b6cad7943511ca468699c88ef63a9ec Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 22 May 2023 00:37:32 +0300 Subject: use of serverCtx --- internal/server/server.go | 15 +++++++++------ internal/server/tcpserver.go | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/internal/server/server.go b/internal/server/server.go index d388e01..be87773 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -14,7 +14,9 @@ func Start(ctx context.Context, conf config.Config) { go func() { for { log.Println("Starting server") - start(ctx, conf) + if err := run(ctx, conf); err != nil { + log.Println(err) + } select { case <-time.After(time.Second): @@ -25,7 +27,10 @@ func Start(ctx context.Context, conf config.Config) { }() } -func start(ctx context.Context, conf config.Config) { +func run(ctx context.Context, conf config.Config) error { + serverCtx, cancel := context.WithCancel(ctx) + defer cancel() + ch := make(chan vote.Vote) quo := make(quorum.Quorum) @@ -42,13 +47,11 @@ func start(ctx context.Context, conf config.Config) { log.Printf("The current leader node is %s", winner) case <-time.After(vote.Expiry): quo.CleanExpired() - case <-ctx.Done(): + case <-serverCtx.Done(): return } } }() - if err := tcpServerStart(ctx, conf, ch); err != nil { - panic(err) - } + return tcpServerRun(serverCtx, conf, ch) } diff --git a/internal/server/tcpserver.go b/internal/server/tcpserver.go index 4157c29..4cb5b02 100644 --- a/internal/server/tcpserver.go +++ b/internal/server/tcpserver.go @@ -11,7 +11,7 @@ import ( "codeberg.org/snonux/gorum/internal/vote" ) -func tcpServerStart(ctx context.Context, conf config.Config, +func tcpServerRun(ctx context.Context, conf config.Config, ch chan<- vote.Vote) error { listener, err := net.Listen("tcp", conf.Address) -- cgit v1.2.3