Skip to content

Commit 4b28d08

Browse files
authored
fix: start watchTopicShards once (#1298)
1 parent 5635735 commit 4b28d08

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

waku/v2/node/localnode.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,10 @@ func (w *WakuNode) SetRelayShards(rs protocol.RelayShards) error {
348348
}
349349

350350
func (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 {

waku/v2/node/wakunode2.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
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

127130
func defaultStoreFactory(w *WakuNode) legacy_store.Store {

0 commit comments

Comments
 (0)