package async_kernel
Module Async_kernel_scheduler.Private
Internal to Async -- see Async_unix.Scheduler for the public API.
module Deferred : sig ... endval sexp_of_t : t -> Sexplib0.Sexp.tval t : unit -> tinclude Core.Invariant.S with type t := t
val invariant : t Base__.Invariant_intf.invval current_execution_context : t -> Execution_context.tval with_execution_context : t -> Execution_context.t -> f:(unit -> 'a) -> 'aval with_execution_context1 :
t ->
Execution_context.t ->
f:('a -> 'b) ->
'a ->
'bval set_execution_context : t -> Execution_context.t -> unitval enqueue : t -> Execution_context.t -> ('a -> unit) -> 'a -> unitval create_job :
t ->
Execution_context.t ->
('a -> unit) ->
'a ->
(Async_kernel__.Types.Execution_context.t, Obj.t -> unit, Obj.t)
Tuple_pool.Slots.t3
Tuple_pool.Pointer.tval enqueue_job :
t ->
(Async_kernel__.Types.Execution_context.t, Obj.t -> unit, Obj.t)
Tuple_pool.Slots.t3
Tuple_pool.Pointer.t ->
free_job:bool ->
unitval free_job :
t ->
(Async_kernel__.Types.Execution_context.t, Obj.t -> unit, Obj.t)
Tuple_pool.Slots.t3
Tuple_pool.Pointer.t ->
unitval main_execution_context : Execution_context.tval cycle_start : t -> Core.Time_ns.tval run_cycle : t -> unitval has_upcoming_event : t -> boolval next_upcoming_event : t -> Core.Time_ns.t optionval next_upcoming_event_exn : t -> Core.Time_ns.tval event_precision : t -> Core.Core_private.Time_ns_alternate_sexp.Span.tval uncaught_exn : t -> Core.Error.t optionval uncaught_exn_unwrapped : t -> (Core.Exn.t * Core.Sexp.t) optionval num_pending_jobs : t -> intval num_jobs_run : t -> intval last_cycle_num_jobs : t -> intval map_cycle_times :
t ->
f:(Core.Core_private.Time_ns_alternate_sexp.Span.t -> 'a) ->
'a Tail.Stream.tval cycle_num_jobs : t -> int Tail.Stream.tval cycle_count : t -> intval total_cycle_time : t -> Core.Core_private.Time_ns_alternate_sexp.Span.tval max_num_jobs_per_priority_per_cycle : t -> intval set_max_num_jobs_per_priority_per_cycle : t -> int -> unitval set_check_access : t -> (unit -> unit) option -> unitval check_access : t -> unitval check_invariants : t -> boolval set_check_invariants : t -> bool -> unitval set_record_backtraces : t -> bool -> unitval run_every_cycle_start : t -> f:(unit -> unit) -> unitval run_every_cycle_end : t -> f:(unit -> unit) -> unitval add_every_cycle_start_hook :
t ->
f:(unit -> unit) ->
Async_kernel__.Types.Cycle_hook_handle.tval add_every_cycle_end_hook :
t ->
f:(unit -> unit) ->
Async_kernel__.Types.Cycle_hook_handle.tval remove_every_cycle_start_hook_exn :
t ->
Async_kernel__.Types.Cycle_hook_handle.t ->
unitval remove_every_cycle_end_hook_exn :
t ->
Async_kernel__.Types.Cycle_hook_handle.t ->
unitval last_cycle_time : t -> Core.Core_private.Time_ns_alternate_sexp.Span.tval long_cycles :
t ->
at_least:Core.Core_private.Time_ns_alternate_sexp.Span.t ->
Core.Core_private.Time_ns_alternate_sexp.Span.t Tail.Stream.tval can_run_a_job : t -> boolval create_alarm : t -> (unit -> unit) -> Core.Gc.Expert.Alarm.tval add_finalizer :
t ->
'a Core.Heap_block.t ->
('a Core.Heap_block.t -> unit) ->
unitval add_finalizer_exn : t -> 'a -> ('a -> unit) -> unitval add_finalizer_last : t -> 'a Core.Heap_block.t -> (unit -> unit) -> unitval add_finalizer_last_exn : t -> 'a -> (unit -> unit) -> unitval set_thread_safe_external_job_hook : t -> (unit -> unit) -> unitval set_job_queued_hook : t -> (Priority.t -> unit) -> unitval set_event_added_hook : t -> (Core.Time_ns.t -> unit) -> unitval thread_safe_enqueue_external_job :
t ->
Execution_context.t ->
('a -> unit) ->
'a ->
unitval force_current_cycle_to_end : t -> unittype 'a with_options = ?monitor:Monitor.t -> ?priority:Priority.t -> 'aval within' : ((unit -> 'a Deferred.t) -> 'a Deferred.t) with_optionsval within : ((unit -> unit) -> unit) with_optionsval within_v : ((unit -> 'a) -> 'a option) with_optionsval schedule' : ((unit -> 'a Deferred.t) -> 'a Deferred.t) with_optionsval schedule : ((unit -> unit) -> unit) with_optionsval preserve_execution_context' :
('a -> 'b Deferred.t) ->
('a -> 'b Deferred.t) Core.Staged.tval within_context :
Execution_context.t ->
(unit -> 'a) ->
('a, unit) Core.Result.tval find_local : 'a Core.Univ_map.Key.t -> 'a optionval with_local : 'a Core.Univ_map.Key.t -> 'a option -> f:(unit -> 'b) -> 'bval yield : t -> unit Deferred.tval yield_every : n:int -> (t -> unit Deferred.t) Core.Staged.tval yield_until_no_jobs_remain :
?may_return_immediately:bool ->
t ->
unit Deferred.tmodule Very_low_priority_work : sig ... end