Skip to content

Commit 652f84c

Browse files
committed
Use atomic.bool for flag AllowedToSend
1 parent 510644a commit 652f84c

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

rolling-shutter/keyper/fx/messagesender.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"encoding/base64"
88
"encoding/binary"
99
"fmt"
10+
"sync/atomic"
1011

1112
"github.com/pkg/errors"
1213
"github.com/rs/zerolog/log"
@@ -49,7 +50,7 @@ type RPCMessageSender struct {
4950
rpcclient client.Client
5051
chainID string
5152
signingKey *ecdsa.PrivateKey
52-
AllowedToSend bool
53+
AllowedToSend *atomic.Bool
5354
}
5455

5556
var _ MessageSender = &RPCMessageSender{}
@@ -65,17 +66,18 @@ var mockMessageSenderBufferSize = 0x10000
6566

6667
// NewRPCMessageSender creates a new RPCMessageSender.
6768
func NewRPCMessageSender(cl client.Client, signingKey *ecdsa.PrivateKey) RPCMessageSender {
68-
return RPCMessageSender{
69-
rpcclient: cl,
70-
chainID: "",
71-
signingKey: signingKey,
72-
AllowedToSend: false,
69+
ms := RPCMessageSender{
70+
rpcclient: cl,
71+
chainID: "",
72+
signingKey: signingKey,
7373
}
74+
ms.AllowedToSend.Store(false)
75+
return ms
7476
}
7577

7678
// SendMessage signs the given shmsg.Message and sends the message to shuttermint.
7779
func (ms *RPCMessageSender) SendMessage(ctx context.Context, msg *shmsg.Message) error {
78-
if !ms.AllowedToSend {
80+
if !ms.AllowedToSend.Load() {
7981
log.Info().Str("msg", msg.String()).Msg("not allowed to send")
8082
return nil
8183
}

rolling-shutter/keyper/keyper.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ func (kpr *KeyperCore) operateShuttermint(ctx context.Context, _ service.Runner)
358358
if err != nil {
359359
return err
360360
}
361-
if !kpr.messageSender.AllowedToSend {
361+
if !kpr.messageSender.AllowedToSend.Load() {
362362
allowSendIfInKeyperSet(ctx, database.New(kpr.dbpool), syncBlockNumber, kpr)
363363
}
364364
err = fx.SendShutterMessages(ctx, database.New(kpr.dbpool), &kpr.messageSender)
@@ -384,6 +384,6 @@ func allowSendIfInKeyperSet(ctx context.Context, queries *database.Queries, sync
384384
log.Err(err).Msg("could not query if in keyper set")
385385
}
386386
if count > 0 {
387-
kpr.messageSender.AllowedToSend = true
387+
kpr.messageSender.AllowedToSend.Store(true)
388388
}
389389
}

0 commit comments

Comments
 (0)