summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2023-05-22 00:26:30 +0300
committerPaul Buetow <paul@buetow.org>2023-05-22 00:26:30 +0300
commit688ac52705c2e4bd015e8f369969de6a91e26d80 (patch)
treede2f160b3ffaf750c60585f59257045d7dda3c14 /internal
parentbb79f9f50a89507fb7db6d1d4c62630e431952f9 (diff)
catch signals for shutdown
Diffstat (limited to 'internal')
-rw-r--r--internal/client/client.go17
-rw-r--r--internal/run.go4
-rw-r--r--internal/server/server.go15
3 files changed, 34 insertions, 2 deletions
diff --git a/internal/client/client.go b/internal/client/client.go
index 299623d..eab3514 100644
--- a/internal/client/client.go
+++ b/internal/client/client.go
@@ -2,9 +2,26 @@ package client
import (
"context"
+ "log"
+ "time"
"codeberg.org/snonux/gorum/internal/config"
)
func Start(ctx context.Context, conf config.Config) {
+ go func() {
+ for {
+ log.Println("Client server")
+ start(ctx, conf)
+
+ select {
+ case <-time.After(time.Second):
+ case <-ctx.Done():
+ return
+ }
+ }
+ }()
+}
+
+func start(ctx context.Context, conf config.Config) {
}
diff --git a/internal/run.go b/internal/run.go
index e1139d7..1473719 100644
--- a/internal/run.go
+++ b/internal/run.go
@@ -8,12 +8,12 @@ import (
"codeberg.org/snonux/gorum/internal/server"
)
-func Run(ctx context.Context, configFile string) {
+func Start(ctx context.Context, configFile string) {
conf, err := config.New(configFile)
if err != nil {
panic(err)
}
- go client.Start(ctx, conf)
+ client.Start(ctx, conf)
server.Start(ctx, conf)
}
diff --git a/internal/server/server.go b/internal/server/server.go
index 55d7c9a..d388e01 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -11,6 +11,21 @@ import (
)
func Start(ctx context.Context, conf config.Config) {
+ go func() {
+ for {
+ log.Println("Starting server")
+ start(ctx, conf)
+
+ select {
+ case <-time.After(time.Second):
+ case <-ctx.Done():
+ return
+ }
+ }
+ }()
+}
+
+func start(ctx context.Context, conf config.Config) {
ch := make(chan vote.Vote)
quo := make(quorum.Quorum)