An example Scheduler using kernel threads.
This is an example Scheduler that mirrors the default scheduling behavior of creating one kernel thread per call to spawn. It is fully functional and may be instantiated and used, but is not a necessary part of the default functioning of this module.
Creates a new Condition variable. No custom behavior is needed here.
Creates a new kernel thread and assigns it to run the supplied op.
This simply runs op directly, since no real scheduling is needed by this approach.
This scheduler does no explicit multiplexing, so this is a no-op.
Returns ThreadInfo.thisInfo, since it is a thread-local instance of ThreadInfo, which is the correct behavior for this scheduler.
Spawns the supplied op and starts the Scheduler.
Assigns a logical thread to execute the supplied op.
Yields execution to another logical thread.
Returns an appropriate ThreadInfo instance.
Creates a Condition variable analog for signaling.