sig
type t = Raw_scheduler.t
val t : unit -> t
val go : ?raise_unhandled_exn:bool -> unit -> Core.Std.never_returns
val go_main :
?raise_unhandled_exn:bool ->
?file_descr_watcher:Import.Config.File_descr_watcher.t ->
main:(unit -> unit) -> unit -> Core.Std.never_returns
type 'a with_options =
?monitor:Import.Monitor.t -> ?priority:Import.Priority.t -> 'a
val within_context :
Import.Execution_context.t ->
(unit -> 'a) -> ('a, unit) Core.Std.Result.t
val within' :
((unit -> 'a Import.Deferred.t) -> 'a Import.Deferred.t) with_options
val within : ((unit -> unit) -> unit) with_options
val within_v : ((unit -> 'a) -> 'a option) with_options
val schedule' :
((unit -> 'a Import.Deferred.t) -> 'a Import.Deferred.t) with_options
val schedule : ((unit -> unit) -> unit) with_options
val preserve_execution_context :
('a -> unit) -> ('a -> unit) Core.Std.Staged.t
val preserve_execution_context' :
('a -> 'b Import.Deferred.t) ->
('a -> 'b Import.Deferred.t) Core.Std.Staged.t
val cycle_start : unit -> Core.Std.Time.t
val cycle_times : unit -> Core.Std.Time.Span.t Import.Stream.t
val report_long_cycle_times : ?cutoff:Core.Std.Time.Span.t -> unit -> unit
val cycle_count : unit -> int
val force_current_cycle_to_end : unit -> unit
val is_running : unit -> bool
val set_max_num_jobs_per_priority_per_cycle : int -> unit
type 'b folder =
'b Scheduler.folder = {
folder : 'a. 'b -> t -> (t, 'a) Core.Std.Field.t -> 'b;
}
val fold_fields : init:'b -> 'b folder -> 'b
val is_ready_to_initialize : unit -> bool
val reset_in_forked_process : unit -> unit
val add_busy_poller :
(unit -> [ `Continue_polling | `Stop_polling of 'a ]) ->
'a Import.Deferred.t
val sexp_of_t : t -> Sexplib.Sexp.t
end