package async_kernel

  1. Overview
  2. Docs
Monadic concurrency library

Install

Dune Dependency

Authors

Maintainers

Sources

async_kernel-v0.15.0.tar.gz
sha256=30753e014bb0b127ee59f10b1073b8ae476468fb2f07dc8c99dbe2ef312fc696

doc/async_kernel.limiter_async/Limiter_async/Resource_throttle/index.html

Module Limiter_async.Resource_throttleSource

A resource throttle holds a static list of n resources that are handed out in a round-robin fashion to up to n concurrent jobs. A resource given to create may be re-used many times in the lifetime of t but will never be used by more than one job at a time.

Sourcetype 'a t
Sourceval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
Sourceval create_exn : resources:'a list -> continue_on_error:bool -> ?burst_size:int -> ?sustained_rate_per_sec:float -> unit -> 'a t
Sourceval max_concurrent_jobs : _ t -> int
Sourceval enqueue_exn : 'a t -> ?allow_immediate_run:bool -> ('a -> unit) -> unit
include Common with type 'a t := 'a t
Sourceval kill : _ t -> unit

kills t, which aborts all enqueued jobs that haven't started and all jobs enqueued in the future. If t has already been killed, then calling kill t has no effect. Note that kill does not affect currently running jobs in any way.

Sourceval is_dead : _ t -> bool

is_dead t returns true if t was killed, either by kill or by an unhandled exception in a job.

Sourceval to_limiter : _ t -> limiter

Convert to a limiter

OCaml

Innovation. Community. Security.