# semaphore-compat
`semaphore-compat` provides a cross-platform implementation of system semaphores
that abstracts over the `unix` and `Win32` libraries.
It supports:
- Creating (`createSemaphore`, `freshSemaphore`), opening (`openSemaphore`)
and closing (`destroySemaphore`) semaphores.
- Waiting on a semaphore:
- without blocking with `tryWaitOnSemaphore`,
- blocking forever, with `waitOnSemaphore`,
- blocking, in a separate thread and allowing interruption, with
`forkWaitOnSemaphoreInterruptible` and `interruptWaitOnSemaphore`.
- Releasing tokens to a semaphore (`releaseSemaphore`).
- Querying the semaphore for its current value (`getSemaphoreValue`).