package moonpool

  1. Overview
  2. Docs
Pools of threads supported by a pool of domains

Install

Dune Dependency

Authors

Maintainers

Sources

moonpool-0.8.tbz
sha256=2c10792726b1c2e4987f0f2acca5c5c221ea5cc0a2b4c75ad4fd2709e32aab6f
sha512=801c399ae9b72dd5f84624cdee9bcbb56c5ed9c371001e00176e685686234b4135d69e48877412b25a5127ad59b729000d5422dad0c90e2ded2744b974dddeca

doc/moonpool.private/Moonpool_private/Ws_deque_/index.html

Module Moonpool_private.Ws_deque_Source

Work-stealing deque.

Adapted from "Dynamic circular work stealing deque", Chase & Lev.

However note that this one is not dynamic in the sense that there is no resizing. Instead we return false when push fails, which keeps the implementation fairly lightweight.

Sourcetype 'a t

Deque containing values of type 'a

Sourceval create : dummy:'a -> unit -> 'a t

Create a new deque.

Sourceval push : 'a t -> 'a -> bool

Push value at the bottom of deque. returns true if it succeeds. This must be called only by the owner thread.

Sourceval pop : 'a t -> 'a option

Pop value from the bottom of deque. This must be called only by the owner thread.

Sourceexception Empty
Sourceval pop_exn : 'a t -> 'a
Sourceval steal : 'a t -> 'a option

Try to steal from the top of deque. This is thread-safe.

Sourceval size : _ t -> int
OCaml

Innovation. Community. Security.