mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-14 16:03:41 +00:00
runtime: remove unnecessary check for negative sleepTicks duration
This is now fixed for every target in the previous commit. Also see: https://github.com/tinygo-org/tinygo/pull/4239
This commit is contained in:
@@ -119,19 +119,17 @@ func ticks() timeUnit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func sleepTicks(duration timeUnit) {
|
func sleepTicks(duration timeUnit) {
|
||||||
if duration >= 0 {
|
curr := ticks()
|
||||||
curr := ticks()
|
last := curr + duration // 64-bit overflow unlikely
|
||||||
last := curr + duration // 64-bit overflow unlikely
|
for curr < last {
|
||||||
for curr < last {
|
cycles := timeUnit((last - curr) / pitCyclesPerMicro)
|
||||||
cycles := timeUnit((last - curr) / pitCyclesPerMicro)
|
if cycles > 0xFFFFFFFF {
|
||||||
if cycles > 0xFFFFFFFF {
|
cycles = 0xFFFFFFFF
|
||||||
cycles = 0xFFFFFFFF
|
|
||||||
}
|
|
||||||
if !timerSleep(uint32(cycles)) {
|
|
||||||
return // return early due to interrupt
|
|
||||||
}
|
|
||||||
curr = ticks()
|
|
||||||
}
|
}
|
||||||
|
if !timerSleep(uint32(cycles)) {
|
||||||
|
return // return early due to interrupt
|
||||||
|
}
|
||||||
|
curr = ticks()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,10 +31,6 @@ func nanosecondsToTicks(ns int64) timeUnit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func sleepTicks(d timeUnit) {
|
func sleepTicks(d timeUnit) {
|
||||||
if d <= 0 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if hasScheduler {
|
if hasScheduler {
|
||||||
// With scheduler, sleepTicks may return early if an interrupt or
|
// With scheduler, sleepTicks may return early if an interrupt or
|
||||||
// event fires - so scheduler can schedule any go routines now
|
// event fires - so scheduler can schedule any go routines now
|
||||||
|
|||||||
Reference in New Issue
Block a user