sig
type t
external make : int32 -> bool -> Semaphore.t = "ocamljava_semaphore_make"
external acquire : Semaphore.t -> int32 -> unit
= "ocamljava_semaphore_acquire"
external acquire_uninterruptibly : Semaphore.t -> int32 -> unit
= "ocamljava_semaphore_acquire_uninterruptibly"
external available_permits : Semaphore.t -> int32
= "ocamljava_semaphore_available_permits"
external drain_permits : Semaphore.t -> int32
= "ocamljava_semaphore_drain_permits"
external get_queue_length : Semaphore.t -> int32
= "ocamljava_semaphore_get_queue_length"
external has_queued_threads : Semaphore.t -> bool
= "ocamljava_semaphore_has_queued_threads"
external is_fair : Semaphore.t -> bool = "ocamljava_semaphore_is_fair"
external release : Semaphore.t -> int32 -> unit
= "ocamljava_semaphore_release"
external try_acquire : Semaphore.t -> int32 -> bool
= "ocamljava_semaphore_try_acquire"
external try_acquire_time :
Semaphore.t -> int32 -> int64 -> TimeUnit.t -> bool
= "ocamljava_semaphore_try_acquire"
end