Add module for Scheduler.

Also reorganizes some code to make it easier to add more modules.
This commit is contained in:
Bob Nystrom
2015-09-13 11:32:39 -07:00
parent f36a795534
commit ea5c3b01eb
18 changed files with 291 additions and 110 deletions

15
test/scheduler/add.wren Normal file
View File

@ -0,0 +1,15 @@
import "scheduler" for Scheduler
import "timer" for Timer
var run = false
Scheduler.add {
run = true
}
// Does not run immediately.
IO.print(run) // expect: false
Timer.sleep(0)
// Runs when the main fiber suspends on IO.
IO.print(run) // expect: true

View File

@ -1,11 +1,12 @@
import "scheduler" for Scheduler
import "timer" for Timer
Timer.schedule {
Scheduler.add {
Timer.sleep(2)
IO.print("a")
}
Timer.schedule {
Scheduler.add {
Timer.sleep(1)
IO.print("b")
}

View File

@ -1,12 +1,13 @@
import "scheduler" for Scheduler
import "timer" for Timer
// These are both rounded to 1, so "a" should complete first.
Timer.schedule {
Scheduler.add {
Timer.sleep(1.5)
IO.print("a")
}
Timer.schedule {
Scheduler.add {
Timer.sleep(1.3)
IO.print("b")
}

View File

@ -1,12 +1,13 @@
import "scheduler" for Scheduler
import "timer" for Timer
Timer.schedule {
Scheduler.add {
IO.print("a before")
Timer.sleep(0)
IO.print("a after")
}
Timer.schedule {
Scheduler.add {
IO.print("b before")
Timer.sleep(0)
IO.print("b after")