Internal to Async -- see Async_unix.Scheduler for the public API.

`module Deferred = Async_kernel__.Deferred1`
`type t``= Async_kernel__.Types.Scheduler.t```
`include sig ... end`
`val sexp_of_t : t ‑> Base.Sexp.t`
`val t : unit ‑> t`
`include Core_kernel.Invariant.S with type t := t`
`type t`````
`val invariant : t Base__.Invariant_intf.inv`
`val current_execution_context : t ‑> Async_kernel.Execution_context.t`
`val with_execution_context : t ‑> Async_kernel.Execution_context.t ‑> f:(unit ‑> 'a) ‑> 'a`
`val set_execution_context : t ‑> Async_kernel.Execution_context.t ‑> unit`
`val enqueue : t ‑> Async_kernel.Execution_context.t ‑> ('a ‑> unit) ‑> 'a ‑> unit`
`val create_job : t ‑> Async_kernel.Execution_context.t ‑> ('a ‑> unit) ‑> 'a ‑> Async_kernel__.Job.t`
`val enqueue_job : t ‑> Async_kernel__.Job.t ‑> free_job:bool ‑> unit`
`val free_job : t ‑> Async_kernel__.Job.t ‑> unit`
`val main_execution_context : Async_kernel.Execution_context.t`
`val cycle_start : t ‑> Async_kernel__.Import.Time_ns.t`
`val run_cycle : t ‑> unit`
`val run_cycles_until_no_jobs_remain : unit ‑> unit`
`val has_upcoming_event : t ‑> bool`
`val next_upcoming_event : t ‑> Async_kernel__.Import.Time_ns.t option`
`val next_upcoming_event_exn : t ‑> Async_kernel__.Import.Time_ns.t`
`val event_precision : t ‑> Async_kernel__.Import.Time_ns.Span.t`
`val uncaught_exn : t ‑> Core_kernel.Error.t option`
`val uncaught_exn_unwrapped : t ‑> (Core_kernel.Exn.t * Core_kernel.Sexp.t) option`
`val num_pending_jobs : t ‑> int`
`val num_jobs_run : t ‑> int`
`val map_cycle_times : t ‑> f:(Async_kernel__.Import.Time_ns.Span.t ‑> 'a) ‑> 'a Async_kernel__.Async_stream.t`
`val cycle_num_jobs : t ‑> int Async_kernel__.Async_stream.t`
`val cycle_count : t ‑> int`
`val max_num_jobs_per_priority_per_cycle : t ‑> int`
`val set_max_num_jobs_per_priority_per_cycle : t ‑> int ‑> unit`
`val set_check_access : t ‑> (unit ‑> unit) option ‑> unit`
`val check_access : t ‑> unit`
`val check_invariants : t ‑> bool`
`val set_check_invariants : t ‑> bool ‑> unit`
`val set_record_backtraces : t ‑> bool ‑> unit`
`val long_cycles : t ‑> at_least:Async_kernel__.Import.Time_ns.Span.t ‑> Async_kernel__.Import.Time_ns.Span.t Async_kernel__.Async_stream.t`
`val can_run_a_job : t ‑> bool`
`val create_alarm : t ‑> (unit ‑> unit) ‑> Core_kernel.Gc.Expert.Alarm.t`
`val add_finalizer : t ‑> 'a Core_kernel.Heap_block.t ‑> ('a Core_kernel.Heap_block.t ‑> unit) ‑> unit`
`val add_finalizer_exn : t ‑> 'a ‑> ('a ‑> unit) ‑> unit`
`val add_finalizer_last : t ‑> 'a Core_kernel.Heap_block.t ‑> (unit ‑> unit) ‑> unit`
`val add_finalizer_last_exn : t ‑> 'a ‑> (unit ‑> unit) ‑> unit`
`val set_thread_safe_external_job_hook : t ‑> (unit ‑> unit) ‑> unit`
`val set_job_queued_hook : t ‑> (Async_kernel.Priority.t ‑> unit) ‑> unit`
`val set_event_added_hook : t ‑> (Async_kernel__.Import.Time_ns.t ‑> unit) ‑> unit`
`val set_on_start_of_cycle : t ‑> (unit ‑> unit) ‑> unit`
`val set_on_end_of_cycle : t ‑> (unit ‑> unit) ‑> unit`
`val thread_safe_enqueue_external_job : t ‑> Async_kernel.Execution_context.t ‑> ('a ‑> unit) ‑> 'a ‑> unit`
`val force_current_cycle_to_end : t ‑> unit`
`type 'a with_options``= ?⁠monitor:Async_kernel.Monitor.t ‑> ?⁠priority:Async_kernel.Priority.t ‑> 'a```
`val within' : ((unit ‑> 'a Deferred.t) ‑> 'a Deferred.t) with_options`
`val within : ((unit ‑> unit) ‑> unit) with_options`
`val within_v : ((unit ‑> 'a) ‑> 'a option) with_options`
`val schedule' : ((unit ‑> 'a Deferred.t) ‑> 'a Deferred.t) with_options`
`val schedule : ((unit ‑> unit) ‑> unit) with_options`
`val preserve_execution_context : ('a ‑> unit) ‑> ('a ‑> unit) Core_kernel.Staged.t`
`val preserve_execution_context' : ('a ‑> 'b Deferred.t) ‑> ('a ‑> 'b Deferred.t) Core_kernel.Staged.t`
`val within_context : Async_kernel.Execution_context.t ‑> (unit ‑> 'a) ‑> ('a, unit) Core_kernel.Result.t`
`val find_local : 'a Core_kernel.Univ_map.Key.t ‑> 'a option`
`val with_local : 'a Core_kernel.Univ_map.Key.t ‑> 'a option ‑> f:(unit ‑> 'b) ‑> 'b`
`val make_async_unusable : unit ‑> unit`
`val reset_in_forked_process : unit ‑> unit`
`val yield : t ‑> unit Deferred.t`
`val yield_every : n:int ‑> (t ‑> unit Deferred.t) Core_kernel.Staged.t`
`val yield_until_no_jobs_remain : t ‑> unit Deferred.t`
`module Very_low_priority_work : sig ... end`