Module Raw_scheduler

module Raw_scheduler: sig .. end

module Core_scheduler: Async_core.Scheduler
module Block_group: Async_core.Block_group
module Work: Block_group.Work
module Fd: Raw_fd
module Signal: Core.Signal
type 'a with_options = 'a Core_scheduler.with_options 
include struct ... end
val debug : bool
type finalizer_job = Import.Execution_context.t * (unit -> unit) 
type t = {
   mutex :Core.Std.Nano_mutex.t;
   mutable go_has_been_called :bool;
   file_descr_watcher :(Fd.t, Fd.ready_to_result Import.Ivar.t)
File_descr_watcher.t
;
   fd_by_descr :Fd_by_descr.t;
   mutable id_of_thread_running_the_select_loop :int;
   select_interruptor :Interruptor.t;
   signal_manager :Raw_signal_manager.t;
   finalizer_jobs :finalizer_job Core.Std.Thread_safe_queue.t Core.Std.sexp_opaque;
   mutable num_blocked_threads :int;
   mutable num_live_threads :int;
   mutable num_reserved_threads :int;
   max_num_live_threads :int;
   work_for_threads :Work.t Core.Std.Squeue.t;
}
val sexp_of_t : t -> Sexplib.Sexp.t
val work_for_threads : t -> Work.t Core.Std.Squeue.t
val max_num_live_threads : t -> int
val num_reserved_threads : t -> int
val set_num_reserved_threads : t -> int -> unit
val num_live_threads : t -> int
val set_num_live_threads : t -> int -> unit
val num_blocked_threads : t -> int
val set_num_blocked_threads : t -> int -> unit
val finalizer_jobs : t ->
finalizer_job Core.Std.Thread_safe_queue.t Core.Std.sexp_opaque
val signal_manager : t -> Raw_signal_manager.t
val select_interruptor : t -> Interruptor.t
val id_of_thread_running_the_select_loop : t -> int
val set_id_of_thread_running_the_select_loop : t -> int -> unit
val fd_by_descr : t -> Fd_by_descr.t
val file_descr_watcher : t ->
(Fd.t, Fd.ready_to_result Import.Ivar.t)
File_descr_watcher.t
val go_has_been_called : t -> bool
val set_go_has_been_called : t -> bool -> unit
val mutex : t -> Core.Std.Nano_mutex.t
module Fields: sig .. end
val create_fd : t ->
Fd.Kind.t ->
Core.Unix.File_descr.t -> name:string -> Fd.t
val lock : t -> unit
val try_lock : t -> bool
val unlock : t -> unit
val with_lock : t -> (unit -> 'a) -> 'a
val am_holding_lock : t -> bool
type the_one_and_only = 
| Not_ready_to_initialize
| Ready_to_initialize of (unit -> t)
| Initialized of t
val mutex_for_initializing_the_one_and_only_ref : Core.Std.Nano_mutex.t
val the_one_and_only_ref : the_one_and_only Pervasives.ref
val is_ready_to_initialize : unit -> bool
val the_one_and_only_uncommon_case : should_lock:bool -> t
val the_one_and_only : should_lock:bool -> t
val current_thread_id : unit -> int
val is_main_thread : unit -> bool
val remove_fd : t -> Raw_fd.t -> unit
val maybe_start_closing_fd : t -> Fd.t -> unit
val dec_num_active_syscalls_fd : t -> Fd.t -> unit
val invariant : t -> unit
val create : unit -> t
val thread_safe_interrupt_select : t -> unit
val i_am_the_select_loop_thread : t -> bool
val have_lock_do_cycle : t -> [ `Jobs_remain | `No_jobs_remain ]
val create_thread : t ->
?default_thread_name_first16:Core.Std.String.t ->
Work.t Core.Std.Squeue.t -> unit
val request_start_watching : t ->
Fd.t ->
Read_write.Key.t ->
interrupt_select:bool ->
[> `Already_closed
| `Already_watching
| `Watching of Fd.ready_to_result Import.Ivar.t ]
val request_stop_watching : t ->
Fd.t ->
Read_write.Key.t -> Fd.ready_to_result -> unit
val select_loop : t -> 'a
val finalize : t -> ('a -> unit) -> 'a -> unit
val go : ?raise_unhandled_exn:bool -> unit -> Core.Std_internal.never_returns
val go_main : ?raise_unhandled_exn:bool ->
main:(unit -> unit) -> unit -> Core.Std_internal.never_returns
val finalize_block_group : t -> Block_group.t -> unit
val create_block_group : t ->
?min_reserved_threads:int ->
?max_reserved_threads:int ->
unit -> [> `Ok of Block_group.t | `Out_of_threads ]
val init : unit -> unit
val is_running : unit -> bool
val report_long_cycle_times : ?cutoff:Core.Std.Time.Span.t -> unit -> unit