mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-18 03:24:00 +00:00
runtime: implement resetTimer
This commit is contained in:
@@ -13,6 +13,7 @@ func (t *timerNode) whenTicks() timeUnit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Defined in the time package, implemented here in the runtime.
|
// Defined in the time package, implemented here in the runtime.
|
||||||
|
//
|
||||||
//go:linkname startTimer time.startTimer
|
//go:linkname startTimer time.startTimer
|
||||||
func startTimer(tim *timer) {
|
func startTimer(tim *timer) {
|
||||||
addTimer(&timerNode{
|
addTimer(&timerNode{
|
||||||
@@ -48,3 +49,11 @@ func timerCallback(tn *timerNode) {
|
|||||||
func stopTimer(tim *timer) bool {
|
func stopTimer(tim *timer) bool {
|
||||||
return removeTimer(tim)
|
return removeTimer(tim)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//go:linkname resetTimer time.resetTimer
|
||||||
|
func resetTimer(tim *timer, when int64) bool {
|
||||||
|
tim.when = when
|
||||||
|
removed := removeTimer(tim)
|
||||||
|
startTimer(tim)
|
||||||
|
return removed
|
||||||
|
}
|
||||||
|
|||||||
Vendored
+13
@@ -38,4 +38,17 @@ func main() {
|
|||||||
<-timer.C
|
<-timer.C
|
||||||
println("waited on timer at 250ms")
|
println("waited on timer at 250ms")
|
||||||
time.Sleep(time.Millisecond * 250)
|
time.Sleep(time.Millisecond * 250)
|
||||||
|
|
||||||
|
reset := timer.Reset(time.Millisecond * 250)
|
||||||
|
println("timer reset:", reset)
|
||||||
|
println("waiting on timer")
|
||||||
|
go func() {
|
||||||
|
time.Sleep(time.Millisecond * 125)
|
||||||
|
println(" - after 125ms")
|
||||||
|
time.Sleep(time.Millisecond * 250)
|
||||||
|
println(" - after 250ms")
|
||||||
|
}()
|
||||||
|
<-timer.C
|
||||||
|
println("waited on timer at 250ms")
|
||||||
|
time.Sleep(time.Millisecond * 250)
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+5
@@ -9,3 +9,8 @@ waiting on timer
|
|||||||
- after 125ms
|
- after 125ms
|
||||||
waited on timer at 250ms
|
waited on timer at 250ms
|
||||||
- after 250ms
|
- after 250ms
|
||||||
|
timer reset: false
|
||||||
|
waiting on timer
|
||||||
|
- after 125ms
|
||||||
|
waited on timer at 250ms
|
||||||
|
- after 250ms
|
||||||
|
|||||||
Reference in New Issue
Block a user