diff options
Diffstat (limited to 'internal/client/client.go')
| -rw-r--r-- | internal/client/client.go | 28 |
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 |
