Async_kernel_configSettings that globally affect the behavior of Async.
These can be set by setting an environment variable, ASYNC_CONFIG, to a sexp representation of the config. Also, setting ASYNC_CONFIG to an invalid sexp (e.g. the empty string), will cause your program to print to stderr a usage message describing how to configure ASYNC_CONFIG, and exit nonzero. For example, the following shell command should print the usage message:
ASYNC_CONFIG= foo.exe
module Epoll_max_ready_events : Core.Validated.S with type raw := intmodule Max_inter_cycle_timeout :
Core.Validated.S with type raw := Core.Time_ns.Span.tmodule Min_inter_cycle_timeout :
Core.Validated.S with type raw := Core.Time_ns.Span.tmodule Max_num_threads : Core.Validated.S with type raw := intmodule Max_num_jobs_per_priority_per_cycle :
Core.Validated.S with type raw := intmodule Max_num_open_file_descrs : sig ... endmodule Dump_core_on_job_delay : sig ... endmodule Debug_tag : sig ... endmodule File_descr_watcher : sig ... endtype t = {abort_after_thread_pool_stuck_for : Core.Time_ns.Span.t option;check_invariants : bool option;detect_invalid_access_from_thread : bool option;dump_core_on_job_delay : Dump_core_on_job_delay.t option;epoll_max_ready_events : Epoll_max_ready_events.t option;file_descr_watcher : File_descr_watcher.t option;max_inter_cycle_timeout : Max_inter_cycle_timeout.t option;max_num_open_file_descrs : Max_num_open_file_descrs.t option;max_num_threads : Max_num_threads.t option;max_num_jobs_per_priority_per_cycle : Max_num_jobs_per_priority_per_cycle.t
option;min_inter_cycle_timeout : Min_inter_cycle_timeout.t option;print_debug_messages_for : Debug_tag.t list option;record_backtraces : bool option;report_thread_pool_stuck_for : Core.Time_ns.Span.t option;thread_pool_cpu_affinity : Thread_pool_cpu_affinity.t option;timing_wheel_config : Timing_wheel.Config.t option;}val sexp_of_t : t -> Sexplib0.Sexp.tval create :
?abort_after_thread_pool_stuck_for:Core.Time_ns.Span.t ->
?check_invariants:bool ->
?detect_invalid_access_from_thread:bool ->
?dump_core_on_job_delay:Dump_core_on_job_delay.t ->
?epoll_max_ready_events:Epoll_max_ready_events.t ->
?file_descr_watcher:File_descr_watcher.t ->
?max_inter_cycle_timeout:Max_inter_cycle_timeout.t ->
?max_num_open_file_descrs:Max_num_open_file_descrs.t ->
?max_num_threads:Max_num_threads.t ->
?max_num_jobs_per_priority_per_cycle:Max_num_jobs_per_priority_per_cycle.t ->
?min_inter_cycle_timeout:Min_inter_cycle_timeout.t ->
?print_debug_messages_for:Debug_tag.t list ->
?record_backtraces:bool ->
?report_thread_pool_stuck_for:Core.Time_ns.Span.t ->
?thread_pool_cpu_affinity:Thread_pool_cpu_affinity.t ->
?timing_wheel_config:Timing_wheel.Config.t ->
unit ->
tval t : tmodule Print_debug_messages_for : sig ... endval abort_after_thread_pool_stuck_for : Core.Time_ns.Span.tDocumentation on these is in strings in config.ml, so it can be output in the help message.
val dump_core_on_job_delay : Dump_core_on_job_delay.tval thread_pool_cpu_affinity : Thread_pool_cpu_affinity.tval epoll_max_ready_events : Epoll_max_ready_events.tval file_descr_watcher : File_descr_watcher.tval max_inter_cycle_timeout : Max_inter_cycle_timeout.tval max_num_jobs_per_priority_per_cycle : Max_num_jobs_per_priority_per_cycle.tval max_num_open_file_descrs : Max_num_open_file_descrs.tval max_num_threads : Max_num_threads.tval min_inter_cycle_timeout : Min_inter_cycle_timeout.tval report_thread_pool_stuck_for : Core.Time_ns.Span.tval timing_wheel_config : Timing_wheel.Config.tval default_timing_wheel_config_for_word_size :
Core.Word_size.t ->
Timing_wheel.Config.tval task_id : (unit -> Core.Sexp.t) Core.ref!task_id is used in debug messages. It is is set in Async_unix to include the thread and pid.