Files
tinygo/src/runtime/scheduler_any.go
T
2022-12-19 23:20:11 +01:00

32 lines
596 B
Go

//go:build !scheduler.none
package runtime
import "internal/task"
// Pause the current task for a given time.
//
//go:linkname sleep time.Sleep
func sleep(duration int64) {
if duration <= 0 {
return
}
addSleepTask(task.Current(), nanosecondsToTicks(duration))
task.Pause()
}
// run is called by the program entry point to execute the go program.
// With a scheduler, init and the main function are invoked in a goroutine before starting the scheduler.
func run() {
initHeap()
go func() {
initAll()
callMain()
schedulerDone = true
}()
scheduler()
}
const hasScheduler = true