package async_kernel
Module Deferred.Scheduler
val events :
Async_kernel__.Types.Scheduler.t ->
Async_kernel__Types.Job_or_event.t Timing_wheel.tmodule Synchronous_time_source : sig ... endmodule Event = Synchronous_time_source.Eventmodule Alarm = Timing_wheel.Alarmmodule Job_or_event = Synchronous_time_source.T1.Job_or_eventmodule Ivar : sig ... endmodule Bvar : sig ... endmodule Very_low_priority_worker : sig ... endtype t = {mutable check_access : (unit -> unit) option;mutable job_pool : (Execution_context.t, Obj.t -> unit, Obj.t) Tuple_pool.Slots.t3 Tuple_pool.t;normal_priority_jobs : Async_kernel__.Types.Job_queue.t;low_priority_jobs : Async_kernel__.Types.Job_queue.t;very_low_priority_workers : Very_low_priority_worker.t Core.Deque.t;mutable main_execution_context : Execution_context.t;mutable current_execution_context : Execution_context.t;mutable uncaught_exn : (Core.Exn.t * Core.Sexp.t) option;mutable cycle_count : int;mutable cycle_start : Core.Time_ns.t;mutable in_cycle : bool;mutable run_every_cycle_start : (unit -> unit) list;run_every_cycle_start_state : (Async_kernel__.Types.Cycle_hook_handle.t, unit -> unit) Core.Hashtbl.t;mutable run_every_cycle_end : (unit -> unit) list;run_every_cycle_end_state : (Async_kernel__.Types.Cycle_hook_handle.t, unit -> unit) Core.Hashtbl.t;mutable last_cycle_time : Core.Core_private.Time_ns_alternate_sexp.Span.t;mutable last_cycle_num_jobs : int;mutable total_cycle_time : Core.Core_private.Time_ns_alternate_sexp.Span.t;mutable time_source : Core.read_write Synchronous_time_source.T1.t;external_jobs : Async_kernel__.Types.External_job.t Thread_safe_queue.t;mutable thread_safe_external_job_hook : unit -> unit;mutable job_queued_hook : (Priority.t -> unit) option;mutable event_added_hook : (Core.Time_ns.t -> unit) option;mutable yield : (unit, Core.read_write) Async_kernel__.Types.Bvar.t;mutable yield_until_no_jobs_remain : (unit, Core.read_write) Async_kernel__.Types.Bvar.t;mutable check_invariants : bool;mutable max_num_jobs_per_priority_per_cycle : Async_kernel_config.Max_num_jobs_per_priority_per_cycle.t;mutable record_backtraces : bool;
}val record_backtraces : t -> boolval set_record_backtraces : t -> bool -> unitval max_num_jobs_per_priority_per_cycle :
t ->
Async_kernel_config.Max_num_jobs_per_priority_per_cycle.tval set_max_num_jobs_per_priority_per_cycle :
t ->
Async_kernel_config.Max_num_jobs_per_priority_per_cycle.t ->
unitval check_invariants : t -> boolval set_check_invariants : t -> bool -> unitval yield_until_no_jobs_remain :
t ->
(unit, Core.read_write) Async_kernel__.Types.Bvar.tval set_yield_until_no_jobs_remain :
t ->
(unit, Core.read_write) Async_kernel__.Types.Bvar.t ->
unitval yield : t -> (unit, Core.read_write) Async_kernel__.Types.Bvar.tval set_yield :
t ->
(unit, Core.read_write) Async_kernel__.Types.Bvar.t ->
unitval event_added_hook : t -> (Core.Time_ns.t -> unit) optionval set_event_added_hook : t -> (Core.Time_ns.t -> unit) option -> unitval job_queued_hook : t -> (Priority.t -> unit) optionval set_job_queued_hook : t -> (Priority.t -> unit) option -> unitval thread_safe_external_job_hook : t -> unit -> unitval set_thread_safe_external_job_hook : t -> (unit -> unit) -> unitval external_jobs :
t ->
Async_kernel__.Types.External_job.t Thread_safe_queue.tval time_source : t -> Core.read_write Synchronous_time_source.T1.tval set_time_source : t -> Core.read_write Synchronous_time_source.T1.t -> unitval total_cycle_time : t -> Core.Core_private.Time_ns_alternate_sexp.Span.tval set_total_cycle_time :
t ->
Core.Core_private.Time_ns_alternate_sexp.Span.t ->
unitval set_last_cycle_num_jobs : t -> int -> unitval last_cycle_time : t -> Core.Core_private.Time_ns_alternate_sexp.Span.tval set_last_cycle_time :
t ->
Core.Core_private.Time_ns_alternate_sexp.Span.t ->
unitval run_every_cycle_end_state :
t ->
(Async_kernel__.Types.Cycle_hook_handle.t, unit -> unit) Core.Hashtbl.tval run_every_cycle_end : t -> (unit -> unit) listval set_run_every_cycle_end : t -> (unit -> unit) list -> unitval run_every_cycle_start_state :
t ->
(Async_kernel__.Types.Cycle_hook_handle.t, unit -> unit) Core.Hashtbl.tval run_every_cycle_start : t -> (unit -> unit) listval set_run_every_cycle_start : t -> (unit -> unit) list -> unitval in_cycle : t -> boolval set_in_cycle : t -> bool -> unitval cycle_start : t -> Core.Time_ns.tval set_cycle_start : t -> Core.Time_ns.t -> unitval cycle_count : t -> intval set_cycle_count : t -> int -> unitval set_uncaught_exn : t -> (Core.Exn.t * Core.Sexp.t) option -> unitval set_current_execution_context : t -> Execution_context.t -> unitval main_execution_context : t -> Execution_context.tval set_main_execution_context : t -> Execution_context.t -> unitval very_low_priority_workers : t -> Very_low_priority_worker.t Core.Deque.tval low_priority_jobs : t -> Async_kernel__.Types.Job_queue.tval normal_priority_jobs : t -> Async_kernel__.Types.Job_queue.tval job_pool :
t ->
(Execution_context.t, Obj.t -> unit, Obj.t) Tuple_pool.Slots.t3 Tuple_pool.tval set_job_pool :
t ->
(Execution_context.t, Obj.t -> unit, Obj.t) Tuple_pool.Slots.t3 Tuple_pool.t ->
unitmodule Fields : sig ... endval sexp_of_t : t -> Sexplib0.Sexp.tval uncaught_exn_unwrapped : t -> (Core.Exn.t * Core.Sexp.t) optionval uncaught_exn : t -> Core.Error.t optionval num_pending_jobs : t -> intval num_jobs_run : t -> intval last_cycle_num_jobs : t -> intval check_hook_table_invariant :
('a, 'b) Core.Hashtbl.t ->
'b Base__List.t ->
unitval invariant : t -> unitval free_job :
t ->
(Execution_context.t, Obj.t -> unit, Obj.t) Tuple_pool.Slots.t3
Tuple_pool.Pointer.t ->
unitval enqueue : t -> Execution_context.t -> ('a -> unit) -> 'a -> unitval enqueue_job :
t ->
(Execution_context.t * (Obj.t -> unit) * Obj.t,
[ `S0 of Execution_context.t | `S1 of Obj.t -> unit | `S2 of Obj.t ])
Tuple_pool.Slots.t
Tuple_pool.Pointer.t ->
free_job:bool ->
unitval handle_fired :
'a Synchronous_time_source.T1.t ->
Async_kernel__.Types.Job_or_event.t ->
unitval create : unit -> tval is_dead : t -> boolval set_check_access : t -> (unit -> unit) option -> unitval check_access : t -> unitval t : unit -> tval current_execution_context : t -> Execution_context.tval with_execution_context1 :
t ->
Async_kernel__Types.Execution_context.t ->
f:('a -> 'b) ->
'a ->
'bval with_execution_context :
t ->
Async_kernel__Types.Execution_context.t ->
f:(unit -> 'a) ->
'aval create_job :
t ->
Execution_context.t ->
('a -> unit) ->
'a ->
(Execution_context.t, Obj.t -> unit, Obj.t) Tuple_pool.Slots.t3
Tuple_pool.Pointer.tval got_uncaught_exn : t -> Core.Exn.t -> Core.Sexp.t -> unitval start_cycle :
t ->
max_num_jobs_per_priority:
Async_kernel_config.Max_num_jobs_per_priority_per_cycle.t ->
unitval run_jobs : t -> (unit, exn * Core.Backtrace.t) Core._resultval stabilize : t -> (unit, exn) Core._resultval create_time_source :
?timing_wheel_config:Timing_wheel.Config.t ->
now:Core.Time_ns.t ->
unit ->
'a Synchronous_time_source.T1.tval wall_clock : unit -> Synchronous_time_source.t