avoid multi Stop

This commit is contained in:
maskpp 2025-08-03 12:30:11 +08:00
parent aee0c4daff
commit d9ba0016ad

View file

@ -119,10 +119,8 @@ func (s *Syncer) run() {
retries++ retries++
continue continue
} }
// If the target number is smaller than the remote number, we don't need to sync.
if target != nil && header.Number.Cmp(target.Number) <= 0 { if target != nil && header.Number.Cmp(target.Number) <= 0 {
log.Info("Syncer already synced", "hash", req.hash, "target", target) req.errc <- fmt.Errorf("stale sync target, current: %d, received: %d", target.Number, header.Number)
req.errc <- nil
break break
} }
target = header target = header
@ -162,7 +160,11 @@ func (s *Syncer) Start() error {
// Stop terminates the synchronization service and stop all background activities. // Stop terminates the synchronization service and stop all background activities.
// This function can only be called for one time. // This function can only be called for one time.
func (s *Syncer) Stop() error { func (s *Syncer) Stop() error {
if s.closed == nil { // Already closed
return nil
}
close(s.closed) close(s.closed)
s.closed = nil
s.wg.Wait() s.wg.Wait()
return nil return nil
} }