mirror of
https://github.com/golang/go
synced 2024-11-23 15:20:03 -07:00
runtime: don't skip timer when adjustTimers sees a modified timer
When adjustTimers sees a timerModifiedEarlier or timerModifiedLater, it removes it from the heap, leaving a new timer at that position in the heap. We were accidentally skipping that new timer in our loop. In some unlikely cases this could cause adjustTimers to look at more timers than necessary. Change-Id: Ic71e54c175ab7d86a7fa46f1497aca71ed1c43cc Reviewed-on: https://go-review.googlesource.com/c/go/+/214338 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
8b774103d3
commit
e6bbe967ed
@ -669,6 +669,8 @@ func adjusttimers(pp *p) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Look at this heap position again.
|
||||||
|
i--
|
||||||
}
|
}
|
||||||
case timerNoStatus, timerRunning, timerRemoving, timerRemoved, timerMoving:
|
case timerNoStatus, timerRunning, timerRemoving, timerRemoved, timerMoving:
|
||||||
badTimer()
|
badTimer()
|
||||||
|
Loading…
Reference in New Issue
Block a user