Skip to content

Commit c466950

Browse files
fix: remove sleep and refactor code (#5107)
1 parent 2eb1b6b commit c466950

File tree

7 files changed

+45
-52
lines changed

7 files changed

+45
-52
lines changed

cmd/bee/cmd/start.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ func (c *command) initStartCmd() (err error) {
6868
}
6969

7070
fmt.Print(beeWelcomeMessage)
71-
time.Sleep(5 * time.Second)
7271
fmt.Printf("\n\nversion: %v - planned to be supported until %v, please follow https://ethswarm.org/\n\n", bee.Version, endSupportDate())
7372
logger.Info("bee version", "version", bee.Version)
7473

pkg/node/chain.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,4 +413,7 @@ func (m noOpChainBackend) FilterLogs(context.Context, ethereum.FilterQuery) ([]t
413413
func (m noOpChainBackend) ChainID(context.Context) (*big.Int, error) {
414414
return big.NewInt(m.chainID), nil
415415
}
416-
func (m noOpChainBackend) Close() {}
416+
417+
func (m noOpChainBackend) Close() error {
418+
return nil
419+
}

pkg/node/node.go

Lines changed: 28 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ type Bee struct {
106106
pullSyncCloser io.Closer
107107
pssCloser io.Closer
108108
gsocCloser io.Closer
109-
ethClientCloser func()
109+
ethClientCloser io.Closer
110110
transactionMonitorCloser io.Closer
111111
transactionCloser io.Closer
112112
listenerCloser io.Closer
@@ -394,7 +394,7 @@ func NewBee(
394394
if err != nil {
395395
return nil, fmt.Errorf("init chain: %w", err)
396396
}
397-
b.ethClientCloser = chainBackend.Close
397+
b.ethClientCloser = chainBackend
398398

399399
logger.Info("using chain with network network", "chain_id", chainID, "network_id", networkID)
400400

@@ -1282,6 +1282,12 @@ func (b *Bee) SyncingStopped() chan struct{} {
12821282
return b.syncingStopped.C
12831283
}
12841284

1285+
// namedCloser is a helper struct to associate a closer with its name.
1286+
type namedCloser struct {
1287+
closer io.Closer
1288+
name string
1289+
}
1290+
12851291
func (b *Bee) Shutdown() error {
12861292
var mErr error
12871293

@@ -1335,42 +1341,27 @@ func (b *Bee) Shutdown() error {
13351341
}
13361342

13371343
var wg sync.WaitGroup
1338-
wg.Add(8)
1339-
go func() {
1340-
defer wg.Done()
1341-
tryClose(b.pssCloser, "pss")
1342-
}()
1343-
go func() {
1344-
defer wg.Done()
1345-
tryClose(b.gsocCloser, "gsoc")
1346-
}()
1347-
go func() {
1348-
defer wg.Done()
1349-
tryClose(b.pusherCloser, "pusher")
1350-
}()
1351-
go func() {
1352-
defer wg.Done()
1353-
tryClose(b.pullerCloser, "puller")
1354-
}()
1355-
go func() {
1356-
defer wg.Done()
1357-
tryClose(b.accountingCloser, "accounting")
1358-
}()
13591344

1360-
b.ctxCancel()
1361-
go func() {
1362-
defer wg.Done()
1363-
tryClose(b.pullSyncCloser, "pull sync")
1364-
}()
1365-
go func() {
1366-
defer wg.Done()
1367-
tryClose(b.hiveCloser, "hive")
1368-
}()
1369-
go func() {
1370-
defer wg.Done()
1371-
tryClose(b.saludCloser, "salud")
1372-
}()
1345+
closers := []namedCloser{
1346+
{b.pssCloser, "pss"},
1347+
{b.gsocCloser, "gsoc"},
1348+
{b.pusherCloser, "pusher"},
1349+
{b.pullerCloser, "puller"},
1350+
{b.accountingCloser, "accounting"},
1351+
{b.pullSyncCloser, "pull sync"},
1352+
{b.hiveCloser, "hive"},
1353+
{b.saludCloser, "salud"},
1354+
}
1355+
1356+
wg.Add(len(closers))
1357+
for _, nc := range closers {
1358+
go func(c io.Closer, name string) {
1359+
defer wg.Done()
1360+
tryClose(c, name)
1361+
}(nc.closer, nc.name)
1362+
}
13731363

1364+
b.ctxCancel()
13741365
wg.Wait()
13751366

13761367
tryClose(b.p2pService, "p2p server")
@@ -1393,10 +1384,7 @@ func (b *Bee) Shutdown() error {
13931384

13941385
wg.Wait()
13951386

1396-
if c := b.ethClientCloser; c != nil {
1397-
c()
1398-
}
1399-
1387+
tryClose(b.ethClientCloser, "eth client")
14001388
tryClose(b.accesscontrolCloser, "accesscontrol")
14011389
tryClose(b.tracerCloser, "tracer")
14021390
tryClose(b.topologyCloser, "topology driver")

pkg/transaction/backend.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@ type Backend interface {
3333
NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error)
3434
FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error)
3535
ChainID(ctx context.Context) (*big.Int, error)
36-
37-
Close()
36+
Close() error
3837
}
3938

4039
// IsSynced will check if we are synced with the given blockchain backend. This

pkg/transaction/backendmock/backend.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ func (m *backendMock) BalanceAt(ctx context.Context, address common.Address, blo
127127
}
128128
return nil, errors.New("not implemented")
129129
}
130+
130131
func (m *backendMock) NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error) {
131132
if m.nonceAt != nil {
132133
return m.nonceAt(ctx, account, blockNumber)
@@ -145,7 +146,8 @@ func (m *backendMock) ChainID(ctx context.Context) (*big.Int, error) {
145146
return nil, errors.New("not implemented")
146147
}
147148

148-
func (m *backendMock) Close() {
149+
func (m *backendMock) Close() error {
150+
return nil
149151
}
150152

151153
func New(opts ...Option) transaction.Backend {

pkg/transaction/backendsimulation/backend.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ func (m *simulatedBackend) HeaderByNumber(ctx context.Context, number *big.Int)
151151
func (m *simulatedBackend) BalanceAt(ctx context.Context, address common.Address, block *big.Int) (*big.Int, error) {
152152
return nil, errors.New("not implemented")
153153
}
154+
154155
func (m *simulatedBackend) NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error) {
155156
nonce, ok := m.noncesAt[AccountAtKey{Account: account, BlockNumber: blockNumber.Uint64()}]
156157
if ok {
@@ -168,5 +169,6 @@ func (m *simulatedBackend) ChainID(ctx context.Context) (*big.Int, error) {
168169
return nil, errors.New("not implemented")
169170
}
170171

171-
func (m *simulatedBackend) Close() {
172+
func (m *simulatedBackend) Close() error {
173+
return nil
172174
}

pkg/transaction/wrapped/wrapped.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,18 @@ import (
1212
"github.com/ethereum/go-ethereum"
1313
"github.com/ethereum/go-ethereum/common"
1414
"github.com/ethereum/go-ethereum/core/types"
15+
"github.com/ethereum/go-ethereum/ethclient"
1516
"github.com/ethersphere/bee/v2/pkg/transaction"
1617
)
1718

18-
var (
19-
_ transaction.Backend = (*wrappedBackend)(nil)
20-
)
19+
var _ transaction.Backend = (*wrappedBackend)(nil)
2120

2221
type wrappedBackend struct {
23-
backend transaction.Backend
22+
backend *ethclient.Client
2423
metrics metrics
2524
}
2625

27-
func NewBackend(backend transaction.Backend) transaction.Backend {
26+
func NewBackend(backend *ethclient.Client) transaction.Backend {
2827
return &wrappedBackend{
2928
backend: backend,
3029
metrics: newMetrics(),
@@ -202,6 +201,7 @@ func (b *wrappedBackend) ChainID(ctx context.Context) (*big.Int, error) {
202201
return chainID, nil
203202
}
204203

205-
func (b *wrappedBackend) Close() {
204+
func (b *wrappedBackend) Close() error {
206205
b.backend.Close()
206+
return nil
207207
}

0 commit comments

Comments
 (0)