package moonpool

  1. Overview
  2. Docs

Module Moonpool.Task_local_storageSource

Task-local storage.

This storage is associated to the current task, just like thread-local storage is associated with the current thread. The storage is carried along in case the current task is suspended.

  • since 0.6
Sourceval create : unit -> 'a t

create () makes a new key. Keys are expensive and should never be allocated dynamically or in a loop.

Sourceexception Not_set
Sourceval get_exn : 'a t -> 'a

get k gets the value for the current task for key k. Must be run from inside a task running on a runner.

Sourceval get_opt : 'a t -> 'a option

get_opt k gets the current task's value for key k, or None if not run from inside the task.

Sourceval get : 'a t -> default:'a -> 'a
Sourceval set : 'a t -> 'a -> unit

set k v sets the storage for k to v. Must be run from inside a task running on a runner.

Sourceval with_value : 'a t -> 'a -> (unit -> 'b) -> 'b

with_value k v f sets k to v for the duration of the call to f(). When f() returns (or fails), k is restored to its old value.

Local Hmap.t

This requires hmap to be installed.