me.t.cl.unlock()
wait:
- interval := time.Until(ar.Completed.Add(ar.Interval))
+ interval := ar.Interval
+ if interval < time.Minute {
+ interval = time.Minute
+ }
+ wantPeers := me.t.wantPeersEvent.LockedChan(me.t.cl.locker())
select {
- case <-me.t.wantPeersEvent.LockedChan(me.t.cl.locker()):
+ case <-wantPeers:
if interval > time.Minute {
interval = time.Minute
}
+ wantPeers = nil
default:
}
return
case <-me.stop.LockedChan(me.t.cl.locker()):
return
- case <-time.After(interval):
- case <-me.t.wantPeersEvent.LockedChan(me.t.cl.locker()):
+ case <-wantPeers:
goto wait
+ case <-time.After(time.Until(ar.Completed.Add(interval))):
}
}
}