aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/time.go
diff options
context:
space:
mode:
authorChangkun Ou <hi@changkun.us>2020-02-03 14:42:32 +0100
committerIan Lance Taylor <iant@golang.org>2020-02-24 01:50:28 +0000
commit402ea9e4f9ddcd2ed595ac12ce1b4e39f82e128f (patch)
tree7013229276d72fc24079c310be3a20c6bde100e9 /src/runtime/time.go
parent0f2a1574b02de3fec6937e65b1bdc21106bef15c (diff)
downloadgo-402ea9e4f9ddcd2ed595ac12ce1b4e39f82e128f.tar.gz
go-402ea9e4f9ddcd2ed595ac12ce1b4e39f82e128f.zip
time: add Ticker.Reset
This CL implements Ticker.Reset method in time package. Benchmark: name time/op TickerReset-12 6.41µs ±10% TickerResetNaive-12 95.7µs ±12% Fixes #33184 Change-Id: I4cbd31796efa012b2a297bb342158f11a4a31fef Reviewed-on: https://go-review.googlesource.com/c/go/+/220424 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime/time.go')
-rw-r--r--src/runtime/time.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/runtime/time.go b/src/runtime/time.go
index af5db4cc58..9e1129537a 100644
--- a/src/runtime/time.go
+++ b/src/runtime/time.go
@@ -233,6 +233,12 @@ func resetTimer(t *timer, when int64) {
resettimer(t, when)
}
+// modTimer modifies an existing timer.
+//go:linkname modTimer time.modTimer
+func modTimer(t *timer, when, period int64, f func(interface{}, uintptr), arg interface{}, seq uintptr) {
+ modtimer(t, when, period, f, arg, seq)
+}
+
// Go runtime.
// Ready the goroutine arg.
@@ -402,7 +408,7 @@ func dodeltimer0(pp *p) bool {
}
// modtimer modifies an existing timer.
-// This is called by the netpoll code.
+// This is called by the netpoll code or time.Ticker.Reset.
func modtimer(t *timer, when, period int64, f func(interface{}, uintptr), arg interface{}, seq uintptr) {
if when < 0 {
when = maxWhen