package eio

  1. Overview
  2. Docs
Effect-based direct-style IO API for OCaml

Install

dune-project
 Dependency

Authors

Maintainers

Sources

eio-1.3.tbz
sha256=8ed5c13e6689f31c85dca5f12762d84b8cc0042a7b07d3e464df6eb4b72b3dfc
sha512=46e8f817f32c3316e7f35835a136ad177a295b3306351eb2efa2386482b0169a5b19ed2925b32da2a1f10d40f083fe3d588dd401908f9fec6e4a44cd68535204

doc/eio.unix/Eio_unix/Private/Thread_pool/index.html

Module Private.Thread_poolSource

A pool of systhreads, to avoid the overhead of creating a new thread for each operation.

Sourcetype t
Sourceval create : sleep_q:Eio_utils.Zzz.t -> t

create ~sleep_q is a new thread pool.

sleep_q is used to register a clean-up task to finish idle threads.

Sourceval run : t -> (unit -> 'a) -> 'a

run t fn runs fn () and then marks t as closed, releasing all idle threads.

Sourceval submit : t -> ctx:Eio.Private.Fiber_context.t -> enqueue:(('a, Eio.Exn.with_bt) result -> unit) -> (unit -> 'a) -> unit

submit t ~ctx ~enqueue fn starts running fn in a sys-thread, which uses enqueue to return the result.

If ctx is already cancelled then the error is passed to enqueue immediately. Systhreads do not respond to cancellation once running.

Sourcetype Effect.t +=
  1. | Run_in_systhread : (unit -> 'a) -> (('a, Eio.Exn.with_bt) result * t) Effect.t
Sourceval run_in_systhread : ?label:string -> (unit -> 'a) -> 'a
OCaml

Innovation. Community. Security.