package moonpool

  1. Overview
  2. Docs

This module is specifically intended for users who implement their own runners. Regular users of Moonpool should not need to look at it.

val create : size:(unit -> int) -> num_tasks:(unit -> int) -> shutdown:(wait:bool -> unit -> unit) -> run_async:(ls:Task_local_storage.t -> task -> unit) -> unit -> t

Create a new runner.

NOTE: the runner should support DLA and Suspend_ on OCaml 5.x, so that Fork_join and other 5.x features work properly.

val k_cur_runner : t option Stdlib.ref Moonpool_private.Thread_local_storage_.key

Key that should be used by each runner to store itself in TLS on every thread it controls, so that tasks running on these threads can access the runner. This is necessary for get_current_runner to work.