riot.scheduler
Scheduler
lib_net
logger
riot
riot.core
riot.lib
riot.log
riot.net
riot.runtime
riot.util
time
module Tracer : sig ... end
module Uid = Core.Scheduler_uid
type t = {
uid : Uid.t;
rnd : Random.State.t;
run_queue : Core.Proc_queue.t;
sleep_set : Core.Proc_set.t;
timers : Time.Timer_wheel.t;
io_tbl : Net.Io.t;
}
type pool = {
mutable stop : bool;
schedulers : t list;
processes : Core.Proc_table.t;
val make : rnd:Random.State.t -> unit -> t
val get_current_scheduler : unit -> t
val set_current_scheduler : t -> unit
val get_current_process_pid : unit -> Core.Pid.t
val set_current_process_pid : Core.Pid.t -> unit
val get_random_scheduler : pool -> t
val set_timer : t -> float -> [ `interval | `one_off ] -> (unit -> unit) -> unit Core.Ref.t
val add_to_run_queue : t -> Core.Process.t -> unit
val awake_process : pool -> Core.Process.t -> unit
val run : pool -> t -> unit -> unit
module Pool : sig ... end