include Async_kernel__.Types.Scheduler
type t
=
{
mutable check_access : (unit ‑> unit) option; |
mutable job_pool : Async_kernel__.Types.Job_pool.t; |
normal_priority_jobs : Async_kernel__.Types.Job_queue.t; |
low_priority_jobs : Async_kernel__.Types.Job_queue.t; |
very_low_priority_workers : Async_kernel__.Types.Very_low_priority_worker.t Core_kernel.Deque.t; |
mutable main_execution_context : Async_kernel__.Types.Execution_context.t; |
mutable current_execution_context : Async_kernel__.Types.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 Async_kernel__.Types.Time_source.t1; |
external_jobs : Async_kernel__.Types.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 Async_kernel__.Types.Bvar.t; |
mutable yield_until_no_jobs_remain : unit Async_kernel__.Types.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; |
}
val events : t ‑> Async_kernel__Types.Job.t Core_kernel.Timing_wheel_ns.t
val set_execution_context : t ‑> Async_kernel__Types.Execution_context.t ‑> unit