package containers

  1. Overview
  2. Docs
A modular, clean and powerful extension of the OCaml standard library

Install

Dune Dependency

Authors

Maintainers

Sources

v2.8.1.tar.gz
md5=d84e09c5d0abc501aa17cd502e31a038
sha512=8b832f4ada6035e80d81be0cfb7bdffb695ec67d465ed6097a144019e2b8a8f909095e78019c3da2d8181cc3cd730cd48f7519e87d3162442562103b7f36aabb

doc/containers.thread/CCSemaphore/index.html

Module CCSemaphoreSource

Semaphores

  • since 0.13
Sourcetype t

A semaphore

Sourceval create : int -> t

create n creates a semaphore with initial value n.

Sourceval get : t -> int

Current value.

Sourceval acquire : int -> t -> unit

acquire n s blocks until get s >= n, then atomically sets s := !s - n.

Sourceval release : int -> t -> unit

release n s atomically sets s := !s + n.

Sourceval with_acquire : n:int -> t -> f:(unit -> 'a) -> 'a

with_acquire ~n s ~f first acquires s with n units, calls f (), and then releases s with n units. Safely release the semaphore even if f () fails.

Sourceval wait_until_at_least : n:int -> t -> f:(unit -> 'a) -> 'a

wait_until_at_least ~n s ~f waits until get s >= n, then calls f () and returns its result. Doesn't modify the semaphore.

OCaml

Innovation. Community. Security.

On This Page
  1. Semaphores