---
name: "Semaphore.Binary"
section: "3o"
platform: "linux"
package: "ocaml"
version: "5.5.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Semaphore.Binary"
---

# Semaphore.Binary(3o)

no description

## NAME

Semaphore.Binary - no description

## Module

Module   Semaphore.Binary

## Documentation

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

*type t*

The type of binary semaphores.

*val make* :  **bool -\> 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 -\> 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 -\> 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 -\> 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** .
