Sitelet https://github.com/ethereum-optimism/optimism/commit/d520441b008833d8ee8ee69bbe2e8158366279d0
Skip to content

Commit d520441

Browse files
Use context interrupts consistently in more places (#11511)
* Use context interrupts consistently in more places * Fix CI lint errors (cherry picked from commit 0410b7e448e063fa9e30295fbe423ff1c0171d12) * op-service/ctxinterrupt: address review comments --------- Co-authored-by: protolambda <proto@protolambda.com>
1 parent db8154b commit d520441

29 files changed

Lines changed: 273 additions & 221 deletions

File tree

‎cannon/main.go‎

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ import (
55
"errors"
66
"fmt"
77
"os"
8-
"os/signal"
9-
"syscall"
108

9+
"github.com/ethereum-optimism/optimism/op-service/ctxinterrupt"
1110
"github.com/urfave/cli/v2"
1211

1312
"github.com/ethereum-optimism/optimism/cannon/cmd"
@@ -23,18 +22,7 @@ func main() {
2322
cmd.WitnessCommand,
2423
cmd.RunCommand,
2524
}
26-
ctx, cancel := context.WithCancel(context.Background())
27-
28-
c := make(chan os.Signal, 1)
29-
signal.Notify(c, syscall.SIGINT, syscall.SIGTERM)
30-
go func() {
31-
for {
32-
<-c
33-
cancel()
34-
fmt.Println("\r\nExiting...")
35-
}
36-
}()
37-
25+
ctx := ctxinterrupt.WithSignalWaiterMain(context.Background())
3826
err := app.RunContext(ctx, os.Args)
3927
if err != nil {
4028
if errors.Is(err, ctx.Err()) {

‎op-alt-da/cmd/daserver/entrypoint.go‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66
"github.com/urfave/cli/v2"
77

88
altda "github.com/ethereum-optimism/optimism/op-alt-da"
9+
"github.com/ethereum-optimism/optimism/op-service/ctxinterrupt"
910
oplog "github.com/ethereum-optimism/optimism/op-service/log"
10-
"github.com/ethereum-optimism/optimism/op-service/opio"
1111
)
1212

1313
func StartDAServer(cliCtx *cli.Context) error {
@@ -55,7 +55,5 @@ func StartDAServer(cliCtx *cli.Context) error {
5555
}
5656
}()
5757

58-
opio.BlockOnInterrupts()
59-
60-
return nil
58+
return ctxinterrupt.Wait(cliCtx.Context)
6159
}

‎op-alt-da/cmd/daserver/main.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import (
99

1010
opservice "github.com/ethereum-optimism/optimism/op-service"
1111
"github.com/ethereum-optimism/optimism/op-service/cliapp"
12+
"github.com/ethereum-optimism/optimism/op-service/ctxinterrupt"
1213
oplog "github.com/ethereum-optimism/optimism/op-service/log"
13-
"github.com/ethereum-optimism/optimism/op-service/opio"
1414
)
1515

1616
var Version = "v0.0.1"
@@ -26,7 +26,7 @@ func main() {
2626
app.Description = "Service for storing AltDA inputs"
2727
app.Action = StartDAServer
2828

29-
ctx := opio.WithInterruptBlocker(context.Background())
29+
ctx := ctxinterrupt.WithSignalWaiterMain(context.Background())
3030
err := app.RunContext(ctx, os.Args)
3131
if err != nil {
3232
log.Crit("Application failed", "message", err)

‎op-batcher/cmd/main.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ import (
1111
"github.com/ethereum-optimism/optimism/op-batcher/metrics"
1212
opservice "github.com/ethereum-optimism/optimism/op-service"
1313
"github.com/ethereum-optimism/optimism/op-service/cliapp"
14+
"github.com/ethereum-optimism/optimism/op-service/ctxinterrupt"
1415
oplog "github.com/ethereum-optimism/optimism/op-service/log"
1516
"github.com/ethereum-optimism/optimism/op-service/metrics/doc"
16-
"github.com/ethereum-optimism/optimism/op-service/opio"
1717
"github.com/ethereum/go-ethereum/log"
1818
)
1919

@@ -40,7 +40,7 @@ func main() {
4040
},
4141
}
4242

43-
ctx := opio.WithInterruptBlocker(context.Background())
43+
ctx := ctxinterrupt.WithSignalWaiterMain(context.Background())
4444
err := app.RunContext(ctx, os.Args)
4545
if err != nil {
4646
log.Crit("Application failed", "message", err)

‎op-bootnode/bootnode/entrypoint.go‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ import (
1717
"github.com/ethereum-optimism/optimism/op-node/p2p"
1818
p2pcli "github.com/ethereum-optimism/optimism/op-node/p2p/cli"
1919
"github.com/ethereum-optimism/optimism/op-node/rollup"
20+
"github.com/ethereum-optimism/optimism/op-service/ctxinterrupt"
2021
"github.com/ethereum-optimism/optimism/op-service/eth"
2122
oplog "github.com/ethereum-optimism/optimism/op-service/log"
2223
opmetrics "github.com/ethereum-optimism/optimism/op-service/metrics"
23-
"github.com/ethereum-optimism/optimism/op-service/opio"
2424
oprpc "github.com/ethereum-optimism/optimism/op-service/rpc"
2525
)
2626

@@ -116,9 +116,7 @@ func Main(cliCtx *cli.Context) error {
116116
m.RecordUp()
117117
}
118118

119-
opio.BlockOnInterrupts()
120-
121-
return nil
119+
return ctxinterrupt.Wait(ctx)
122120
}
123121

124122
// validateConfig ensures the minimal config required to run a bootnode

‎op-chain-ops/cmd/check-ecotone/main.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ import (
3232
op_service "github.com/ethereum-optimism/optimism/op-service"
3333
"github.com/ethereum-optimism/optimism/op-service/cliapp"
3434
"github.com/ethereum-optimism/optimism/op-service/client"
35+
"github.com/ethereum-optimism/optimism/op-service/ctxinterrupt"
3536
"github.com/ethereum-optimism/optimism/op-service/dial"
3637
"github.com/ethereum-optimism/optimism/op-service/eth"
3738
oplog "github.com/ethereum-optimism/optimism/op-service/log"
38-
"github.com/ethereum-optimism/optimism/op-service/opio"
3939
"github.com/ethereum-optimism/optimism/op-service/predeploys"
4040
"github.com/ethereum-optimism/optimism/op-service/retry"
4141
"github.com/ethereum-optimism/optimism/op-service/sources"
@@ -168,7 +168,7 @@ func makeCommandAction(fn CheckAction) func(c *cli.Context) error {
168168
logCfg := oplog.ReadCLIConfig(c)
169169
logger := oplog.NewLogger(c.App.Writer, logCfg)
170170

171-
c.Context = opio.CancelOnInterrupt(c.Context)
171+
c.Context = ctxinterrupt.WithCancelOnInterrupt(c.Context)
172172
l1Cl, err := ethclient.DialContext(c.Context, c.String(EndpointL1.Name))
173173
if err != nil {
174174
return fmt.Errorf("failed to dial L1 RPC: %w", err)

‎op-chain-ops/cmd/check-fjord/main.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import (
99
"github.com/ethereum-optimism/optimism/op-chain-ops/cmd/check-fjord/checks"
1010
op_service "github.com/ethereum-optimism/optimism/op-service"
1111
"github.com/ethereum-optimism/optimism/op-service/cliapp"
12+
"github.com/ethereum-optimism/optimism/op-service/ctxinterrupt"
1213
oplog "github.com/ethereum-optimism/optimism/op-service/log"
13-
"github.com/ethereum-optimism/optimism/op-service/opio"
1414
"github.com/ethereum/go-ethereum/crypto"
1515
"github.com/ethereum/go-ethereum/ethclient"
1616
"github.com/urfave/cli/v2"
@@ -54,7 +54,7 @@ func makeCommandAction(fn CheckAction) func(c *cli.Context) error {
5454
logCfg := oplog.ReadCLIConfig(c)
5555
logger := oplog.NewLogger(c.App.Writer, logCfg)
5656

57-
c.Context = opio.CancelOnInterrupt(c.Context)
57+
c.Context = ctxinterrupt.WithCancelOnInterrupt(c.Context)
5858
l2Cl, err := ethclient.DialContext(c.Context, c.String(EndpointL2.Name))
5959
if err != nil {
6060
return fmt.Errorf("failed to dial L2 RPC: %w", err)

‎op-chain-ops/cmd/op-simulate/main.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ import (
3333

3434
op_service "github.com/ethereum-optimism/optimism/op-service"
3535
"github.com/ethereum-optimism/optimism/op-service/cliapp"
36+
"github.com/ethereum-optimism/optimism/op-service/ctxinterrupt"
3637
oplog "github.com/ethereum-optimism/optimism/op-service/log"
37-
"github.com/ethereum-optimism/optimism/op-service/opio"
3838
)
3939

4040
var EnvPrefix = "OP_SIMULATE"
@@ -82,7 +82,7 @@ func main() {
8282
}
8383

8484
func mainAction(c *cli.Context) error {
85-
ctx := opio.CancelOnInterrupt(c.Context)
85+
ctx := ctxinterrupt.WithCancelOnInterrupt(c.Context)
8686
logCfg := oplog.ReadCLIConfig(c)
8787
logger := oplog.NewLogger(c.App.Writer, logCfg)
8888

‎op-challenger/cmd/main.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import (
1515
"github.com/ethereum-optimism/optimism/op-challenger/version"
1616
opservice "github.com/ethereum-optimism/optimism/op-service"
1717
"github.com/ethereum-optimism/optimism/op-service/cliapp"
18+
"github.com/ethereum-optimism/optimism/op-service/ctxinterrupt"
1819
oplog "github.com/ethereum-optimism/optimism/op-service/log"
19-
"github.com/ethereum-optimism/optimism/op-service/opio"
2020
)
2121

2222
var (
@@ -29,7 +29,7 @@ var VersionWithMeta = opservice.FormatVersion(version.Version, GitCommit, GitDat
2929

3030
func main() {
3131
args := os.Args
32-
ctx := opio.WithInterruptBlocker(context.Background())
32+
ctx := ctxinterrupt.WithSignalWaiterMain(context.Background())
3333
if err := run(ctx, args, func(ctx context.Context, l log.Logger, config *config.Config) (cliapp.Lifecycle, error) {
3434
return challenger.Main(ctx, l, config, metrics.NewMetrics())
3535
}); err != nil {

‎op-challenger/cmd/utils.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"github.com/ethereum-optimism/optimism/op-challenger/flags"
88
contractMetrics "github.com/ethereum-optimism/optimism/op-challenger/game/fault/contracts/metrics"
99
opservice "github.com/ethereum-optimism/optimism/op-service"
10+
"github.com/ethereum-optimism/optimism/op-service/ctxinterrupt"
1011
"github.com/ethereum-optimism/optimism/op-service/dial"
11-
"github.com/ethereum-optimism/optimism/op-service/opio"
1212
"github.com/ethereum-optimism/optimism/op-service/sources/batching"
1313
"github.com/ethereum-optimism/optimism/op-service/txmgr"
1414
"github.com/ethereum-optimism/optimism/op-service/txmgr/metrics"
@@ -20,7 +20,7 @@ type ContractCreator[T any] func(context.Context, contractMetrics.ContractMetric
2020

2121
func Interruptible(action cli.ActionFunc) cli.ActionFunc {
2222
return func(ctx *cli.Context) error {
23-
ctx.Context = opio.CancelOnInterrupt(ctx.Context)
23+
ctx.Context = ctxinterrupt.WithCancelOnInterrupt(ctx.Context)
2424
return action(ctx)
2525
}
2626
}

0 commit comments

Comments
 (0)