summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2023-05-22 00:37:32 +0300
committerPaul Buetow <paul@buetow.org>2023-05-22 00:37:32 +0300
commit082f95817b6cad7943511ca468699c88ef63a9ec (patch)
treeb92ca5022d6994d0e77654d5f09e9baf9b9bd69b
parent70dd709f8f625c8ecb63e495b5b04a3b3b4066c2 (diff)
use of serverCtx
-rw-r--r--internal/server/server.go15
-rw-r--r--internal/server/tcpserver.go2
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)