package async_kernel

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Settings 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 := int
module Max_num_threads : Core.Validated.S with type raw := int
module Max_num_open_file_descrs : sig ... end
module Dump_core_on_job_delay : sig ... end
module Debug_tag : sig ... end
module File_descr_watcher : sig ... end
type t = {
  1. abort_after_thread_pool_stuck_for : Core.Time_ns.Span.t option;
  2. check_invariants : bool option;
  3. detect_invalid_access_from_thread : bool option;
  4. dump_core_on_job_delay : Dump_core_on_job_delay.t option;
  5. epoll_max_ready_events : Epoll_max_ready_events.t option;
  6. file_descr_watcher : File_descr_watcher.t option;
  7. max_inter_cycle_timeout : Max_inter_cycle_timeout.t option;
  8. max_num_open_file_descrs : Max_num_open_file_descrs.t option;
  9. max_num_threads : Max_num_threads.t option;
  10. max_num_jobs_per_priority_per_cycle : Max_num_jobs_per_priority_per_cycle.t option;
  11. min_inter_cycle_timeout : Min_inter_cycle_timeout.t option;
  12. print_debug_messages_for : Debug_tag.t list option;
  13. record_backtraces : bool option;
  14. report_thread_pool_stuck_for : Core.Time_ns.Span.t option;
  15. thread_pool_cpu_affinity : Thread_pool_cpu_affinity.t option;
  16. timing_wheel_config : Timing_wheel.Config.t option;
}
val sexp_of_t : t -> Sexplib0.Sexp.t
val 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 -> t
val t : t
val environment_variable : string
module Print_debug_messages_for : sig ... end
val abort_after_thread_pool_stuck_for : Core.Time_ns.Span.t

Documentation on these is in strings in config.ml, so it can be output in the help message.

val check_invariants : bool
val detect_invalid_access_from_thread : bool
val dump_core_on_job_delay : Dump_core_on_job_delay.t
val thread_pool_cpu_affinity : Thread_pool_cpu_affinity.t
val epoll_max_ready_events : Epoll_max_ready_events.t
val file_descr_watcher : File_descr_watcher.t
val max_inter_cycle_timeout : Max_inter_cycle_timeout.t
val max_num_jobs_per_priority_per_cycle : Max_num_jobs_per_priority_per_cycle.t
val max_num_open_file_descrs : Max_num_open_file_descrs.t
val max_num_threads : Max_num_threads.t
val min_inter_cycle_timeout : Min_inter_cycle_timeout.t
val record_backtraces : bool
val report_thread_pool_stuck_for : Core.Time_ns.Span.t
val timing_wheel_config : Timing_wheel.Config.t
val default_timing_wheel_config_for_word_size : Core.Word_size.t -> Timing_wheel.Config.t
val 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.