Skip to content

Commit df35467

Browse files
committed
staticaddr: deposit recover within a wait group
1 parent 6e34ee4 commit df35467

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

staticaddr/deposit/manager.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,10 @@ func (m *Manager) recoverDeposits(ctx context.Context) error {
172172
return err
173173
}
174174

175+
var (
176+
wg sync.WaitGroup
177+
numRecoveredDeposits int
178+
)
175179
for i, d := range deposits {
176180
m.deposits[d.OutPoint] = deposits[i]
177181

@@ -191,7 +195,9 @@ func (m *Manager) recoverDeposits(ctx context.Context) error {
191195
}
192196

193197
// Send the OnRecover event to the state machine.
198+
wg.Add(1)
194199
go func(fsm *FSM) {
200+
defer wg.Done()
195201
err := fsm.SendEvent(ctx, OnRecover, nil)
196202
if err != nil {
197203
log.Errorf("Error sending OnStart event: %v",
@@ -202,7 +208,13 @@ func (m *Manager) recoverDeposits(ctx context.Context) error {
202208
m.mu.Lock()
203209
m.activeDeposits[d.OutPoint] = fsm
204210
m.mu.Unlock()
211+
212+
numRecoveredDeposits++
205213
}
214+
wg.Wait()
215+
216+
log.Infof("Recovered %d deposits from the database",
217+
numRecoveredDeposits)
206218

207219
return nil
208220
}

0 commit comments

Comments
 (0)