Module Async_kernel__Types.Scheduler

type t = {
mutable check_access : (unit ‑> unit) option;
mutable job_pool : Job_pool.t;
normal_priority_jobs : Job_queue.t;
low_priority_jobs : Job_queue.t;
very_low_priority_workers : Very_low_priority_worker.t Core_kernel.Deque.t;
mutable main_execution_context : Execution_context.t;
mutable current_execution_context : Execution_context.t;
mutable uncaught_exn : (Core_kernel.Exn.t * Core_kernel.Sexp.t) option;
mutable cycle_count : int;
mutable cycle_start : Async_kernel__.Import.Time_ns.t;
mutable run_every_cycle_start : (unit ‑> unit) list;
mutable last_cycle_time : Async_kernel__.Import.Time_ns.Span.t;
mutable last_cycle_num_jobs : int;
mutable advance_synchronous_wall_clock : (now:Async_kernel__.Import.Time_ns.t ‑> unit) option;
mutable time_source : Core_kernel.read_write Time_source.t1;
external_jobs : External_job.t Core_kernel.Thread_safe_queue.t;
mutable thread_safe_external_job_hook : unit ‑> unit;
mutable job_queued_hook : (Async_kernel.Priority.t ‑> unit) option;
mutable event_added_hook : (Async_kernel__.Import.Time_ns.t ‑> unit) option;
mutable yield : unit Bvar.t;
mutable yield_until_no_jobs_remain : unit Bvar.t;
mutable check_invariants : bool;
mutable max_num_jobs_per_priority_per_cycle : Async_kernel__.Import.Max_num_jobs_per_priority_per_cycle.t;
mutable record_backtraces : bool;
mutable on_start_of_cycle : unit ‑> unit;
mutable on_end_of_cycle : unit ‑> unit;
}