Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 21 additions & 9 deletions rolling-shutter/keyperimpl/gnosis/keyper.go
Original file line number Diff line number Diff line change
Expand Up @@ -295,17 +295,29 @@ func (kpr *Keyper) processInputs(ctx context.Context) error {
}
}

func (kpr *Keyper) channelNewBlock(_ context.Context, ev *syncevent.LatestBlock) error {
kpr.newBlocks <- ev
return nil
func (kpr *Keyper) channelNewBlock(ctx context.Context, ev *syncevent.LatestBlock) error {
select {
case kpr.newBlocks <- ev:
return nil
case <-ctx.Done():
return ctx.Err()
}
}

func (kpr *Keyper) channelNewKeyperSet(_ context.Context, ev *syncevent.KeyperSet) error {
kpr.newKeyperSets <- ev
return nil
func (kpr *Keyper) channelNewKeyperSet(ctx context.Context, ev *syncevent.KeyperSet) error {
select {
case kpr.newKeyperSets <- ev:
return nil
case <-ctx.Done():
return ctx.Err()
}
}

func (kpr *Keyper) channelNewEonPublicKey(_ context.Context, key keyper.EonPublicKey) error {
kpr.newEonPublicKeys <- key
return nil
func (kpr *Keyper) channelNewEonPublicKey(ctx context.Context, key keyper.EonPublicKey) error {
select {
case kpr.newEonPublicKeys <- key:
return nil
case <-ctx.Done():
return ctx.Err()
}
}
7 changes: 6 additions & 1 deletion rolling-shutter/keyperimpl/gnosis/newslot.go
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,12 @@ func (kpr *Keyper) triggerDecryption(
Int("num-identities", len(trigger.IdentityPreimages)).
Int64("tx-pointer", txPointer).
Msg("sending decryption trigger")
kpr.decryptionTriggerChannel <- event

select {
case kpr.decryptionTriggerChannel <- event:
case <-ctx.Done():
return ctx.Err()
}

return nil
}
Expand Down
30 changes: 21 additions & 9 deletions rolling-shutter/keyperimpl/shutterservice/keyper.go
Original file line number Diff line number Diff line change
Expand Up @@ -274,17 +274,29 @@ func (kpr *Keyper) processInputs(ctx context.Context) error {
}
}

func (kpr *Keyper) channelNewEonPublicKey(_ context.Context, key keyper.EonPublicKey) error {
kpr.newEonPublicKeys <- key
return nil
func (kpr *Keyper) channelNewEonPublicKey(ctx context.Context, key keyper.EonPublicKey) error {
select {
case kpr.newEonPublicKeys <- key:
return nil
case <-ctx.Done():
return ctx.Err()
}
}

func (kpr *Keyper) channelNewBlock(_ context.Context, ev *syncevent.LatestBlock) error {
kpr.newBlocks <- ev
return nil
func (kpr *Keyper) channelNewBlock(ctx context.Context, ev *syncevent.LatestBlock) error {
select {
case kpr.newBlocks <- ev:
return nil
case <-ctx.Done():
return ctx.Err()
}
}

func (kpr *Keyper) channelNewKeyperSet(_ context.Context, ev *syncevent.KeyperSet) error {
kpr.newKeyperSets <- ev
return nil
func (kpr *Keyper) channelNewKeyperSet(ctx context.Context, ev *syncevent.KeyperSet) error {
select {
case kpr.newKeyperSets <- ev:
return nil
case <-ctx.Done():
return ctx.Err()
}
}
8 changes: 7 additions & 1 deletion rolling-shutter/medley/chainsync/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,13 @@ func (s *Client) ChainID(ctx context.Context) (*big.Int, error) {
return s.chainID, nil
}

func (s *Client) Start(_ context.Context, runner service.Runner) error {
func (s *Client) Start(ctx context.Context, runner service.Runner) error {
runner.Go(func() error {
<-ctx.Done()
s.Client.Close()
s.log.Debug("chainsync client closed")
return nil
})
return runner.StartService(s.getServices()...)
}

Expand Down
6 changes: 5 additions & 1 deletion rolling-shutter/medley/channel/channel.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@ func Forward[T any](ctx context.Context,
if !ok {
return nil
}
send <- val
select {
case send <- val:
case <-ctx.Done():
return ctx.Err()
}
case <-ctx.Done():
return ctx.Err()
}
Expand Down
6 changes: 5 additions & 1 deletion rolling-shutter/medley/slotticker/slotticker.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,11 @@ func (t *SlotTicker) run(ctx context.Context) error {

timeToNextSlot := nextTickTime.Sub(now)
timer.Reset(timeToNextSlot)
<-timer.C
select {
case <-timer.C:
case <-ctx.Done():
return ctx.Err()
}

if err := t.tick(ctx, nextSlotNumber); err != nil {
return err
Expand Down
1 change: 1 addition & 0 deletions rolling-shutter/p2p/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ func bootstrap(
_, err := retry.FunctionCall(
ctx,
f,
retry.NumberOfRetries(10),
retry.StopOnErrors(errInsufficientBootstrpConfigured),
retry.Interval(2*time.Second))
if err != nil {
Expand Down
5 changes: 1 addition & 4 deletions rolling-shutter/p2p/p2p.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,6 @@ func (p *P2PNode) Run(
p.mux.Lock()
defer p.mux.Unlock()

runner.Defer(func() {
close(p.GossipMessages)
})

if err := p.init(ctx); err != nil {
return err
}
Expand All @@ -120,6 +116,7 @@ func (p *P2PNode) Run(
if err := p.dht.Close(); err != nil {
log.Error().Err(err).Msg("error closing dht")
}
close(p.GossipMessages)
log.Debug().Msg("host closed")
return nil
})
Expand Down