mirror of
https://github.com/tailscale/tailscale.git
synced 2025-12-16 14:52:18 +01:00
cmol/pprof health (#17303)
health: ensure timers are cleaned up Updates tailscale/corp#32696 Signed-off-by: Claus Lensbøl <claus@tailscale.com>
This commit is contained in:
parent
832e94607e
commit
9ae8155bab
@ -143,15 +143,30 @@ func NewTracker(bus *eventbus.Bus) *Tracker {
|
||||
panic("no eventbus set")
|
||||
}
|
||||
|
||||
cli := bus.Client("health.Tracker")
|
||||
ec := bus.Client("health.Tracker")
|
||||
t := &Tracker{
|
||||
eventClient: cli,
|
||||
changePub: eventbus.Publish[Change](cli),
|
||||
eventClient: ec,
|
||||
changePub: eventbus.Publish[Change](ec),
|
||||
}
|
||||
t.timer = t.clock().AfterFunc(time.Minute, t.timerSelfCheck)
|
||||
|
||||
ec.Monitor(t.awaitEventClientDone)
|
||||
|
||||
return t
|
||||
}
|
||||
|
||||
func (t *Tracker) awaitEventClientDone(ec *eventbus.Client) {
|
||||
<-ec.Done()
|
||||
t.mu.Lock()
|
||||
defer t.mu.Unlock()
|
||||
|
||||
for _, timer := range t.pendingVisibleTimers {
|
||||
timer.Stop()
|
||||
}
|
||||
t.timer.Stop()
|
||||
clear(t.pendingVisibleTimers)
|
||||
}
|
||||
|
||||
func (t *Tracker) now() time.Time {
|
||||
if t.testClock != nil {
|
||||
return t.testClock.Now()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user