summaryrefslogtreecommitdiff
path: root/internal/client/client.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/client/client.go')
-rw-r--r--internal/client/client.go28
1 files changed, 6 insertions, 22 deletions
diff --git a/internal/client/client.go b/internal/client/client.go
index 8f9e851..25d99e0 100644
--- a/internal/client/client.go
+++ b/internal/client/client.go
@@ -3,32 +3,16 @@ package client
import (
"context"
"log"
- "time"
"codeberg.org/snonux/gorum/internal/config"
)
-func Start(ctx context.Context, conf config.Config, winnerCh <-chan string) {
- go func() {
- for {
- log.Println("Starting client")
- run(ctx, conf, winnerCh)
-
- select {
- // Wait a second before restarting the clien
- case <-time.After(time.Second):
- case <-ctx.Done():
- return
- }
- }
- }()
-}
-
-func run(ctx context.Context, conf config.Config, winnerCh <-chan string) {
- fanOut := make([]chan string, len(conf.Participants))
+func Start(ctx context.Context, conf config.Config, liveNodesCh <-chan []string) {
+ log.Println("Starting client")
+ fanOut := make([]chan []string, len(conf.Nodes))
for i := 0; i < len(fanOut); i++ {
- fanOut[i] = make(chan string, 1)
+ fanOut[i] = make(chan []string, 1)
}
go func() {
@@ -40,13 +24,13 @@ func run(ctx context.Context, conf config.Config, winnerCh <-chan string) {
for {
select {
- case winner := <-winnerCh:
+ case liveNodes := <-liveNodesCh:
for _, ch := range fanOut {
select {
case <-ch:
default:
}
- ch <- winner
+ ch <- liveNodes
}
case <-ctx.Done():
return