File tree 1 file changed +15
-10
lines changed
1 file changed +15
-10
lines changed Original file line number Diff line number Diff line change 7
7
"fmt"
8
8
"os"
9
9
"strconv"
10
+ "sync"
10
11
"time"
11
12
12
13
pubsub "github.com/libp2p/go-libp2p-pubsub"
@@ -51,8 +52,7 @@ type messagepoolConfig interface {
51
52
// MessagingSubmodule enhances the `Node` with internal message capabilities.
52
53
type MessagePoolSubmodule struct { //nolint
53
54
// Network Fields
54
- MessageTopic * pubsub.Topic
55
- MessageSub * pubsub.Subscription
55
+ MessageSub * pubsub.Subscription
56
56
57
57
MPool * messagepool.MessagePool
58
58
msgSigner * messagepool.MessageSigner
@@ -182,15 +182,20 @@ func (mp *MessagePoolSubmodule) Start(ctx context.Context) error {
182
182
return err
183
183
}
184
184
185
+ msgTopic , err := mp .network .Pubsub .Join (topicName )
186
+ if err != nil {
187
+ return err
188
+ }
189
+
190
+ var once sync.Once
185
191
subscribe := func () {
186
- var err error
187
- if mp .MessageTopic , err = mp .network .Pubsub .Join (topicName ); err != nil {
188
- panic (err )
189
- }
190
- if mp .MessageSub , err = mp .MessageTopic .Subscribe (); err != nil {
191
- panic (err )
192
- }
193
- go mp .handleIncomingMessage (ctx )
192
+ once .Do (func () {
193
+ var err error
194
+ if mp .MessageSub , err = msgTopic .Subscribe (); err != nil {
195
+ panic (err )
196
+ }
197
+ go mp .handleIncomingMessage (ctx )
198
+ })
194
199
}
195
200
196
201
// wait until we are synced within 10 epochs
You can’t perform that action at this time.
0 commit comments