File tree Expand file tree Collapse file tree 2 files changed +10
-0
lines changed
Expand file tree Collapse file tree 2 files changed +10
-0
lines changed Original file line number Diff line number Diff line change @@ -348,6 +348,10 @@ func (w *WakuNode) SetRelayShards(rs protocol.RelayShards) error {
348348}
349349
350350func (w * WakuNode ) watchTopicShards (ctx context.Context ) error {
351+ if ! w .watchingRelayShards .CompareAndSwap (false , true ) {
352+ return nil
353+ }
354+
351355 evtRelaySubscribed , err := w .Relay ().Events ().Subscribe (new (relay.EvtRelaySubscribed ))
352356 if err != nil {
353357 return err
@@ -358,10 +362,13 @@ func (w *WakuNode) watchTopicShards(ctx context.Context) error {
358362 return err
359363 }
360364
365+ w .wg .Add (1 )
366+
361367 go func () {
362368 defer utils .LogOnPanic ()
363369 defer evtRelaySubscribed .Close ()
364370 defer evtRelayUnsubscribed .Close ()
371+ defer w .wg .Done ()
365372
366373 for {
367374 select {
Original file line number Diff line number Diff line change 55 "math/rand"
66 "net"
77 "sync"
8+ "sync/atomic"
89 "time"
910
1011 backoffv4 "github.com/cenkalti/backoff/v4"
@@ -122,6 +123,8 @@ type WakuNode struct {
122123 storeFactory storeFactory
123124
124125 peermanager * peermanager.PeerManager
126+
127+ watchingRelayShards atomic.Bool
125128}
126129
127130func defaultStoreFactory (w * WakuNode ) legacy_store.Store {
You can’t perform that action at this time.
0 commit comments