eth/txtracker: make Stop safe before Start and idempotent

This commit is contained in:
Csaba Kiraly 2026-06-22 17:55:50 +02:00
parent 00c5d3214a
commit ccd5fced83

View file

@ -81,6 +81,7 @@ type Tracker struct {
sub event.Subscription
quit chan struct{}
stopOnce sync.Once
step chan struct{} // test sync: sent after each event is processed
wg sync.WaitGroup
}
@ -118,8 +119,12 @@ func (t *Tracker) NotifyPeerDrop(peer string) {
// Stop shuts down the tracker.
func (t *Tracker) Stop() {
t.stopOnce.Do(func() {
if t.sub != nil {
t.sub.Unsubscribe()
}
close(t.quit)
})
t.wg.Wait()
}