Semaphore.Binary(3) OCaml library Semaphore.Binary(3)

# [NAME](#NAME)

Semaphore.Binary - no description

# [Module](#Module)

Module Semaphore.Binary

# [Documentation](#Documentation)

Module **Binary**  
: **sig end**

*type t*

The type of binary semaphores.

*val make* : **bool -&gt; t**

**make b** returns a new binary semaphore. If **b** is **true** , the initial value of the semaphore is 1, meaning "available". If **b** is **false** , the initial value of the semaphore is 0, meaning "unavailable".

*val release* : **t -&gt; unit**

**release s** sets the value of semaphore **s** to 1, putting it in the "available" state. If other threads are waiting on **s** , one of them is restarted.

*val acquire* : **t -&gt; unit**

**acquire s** blocks the calling thread until the semaphore **s** has value 1 (is available), then atomically sets it to 0 and returns.

*val try\_acquire* : **t -&gt; bool**

**try\_acquire s** immediately returns **false** if the semaphore **s** has value 0. If **s** has value 1, its value is atomically set to 0 and **try\_acquire s** returns **true** .

2026-09-04 OCamldoc

---

Document: Semaphore.Binary(3o) from ocaml 5.5.1-r0 (Chainguard OS)
Source: https://github.com/ocaml/ocaml
