module Binary:sig
..end
type
t
二元號誌 (binary semaphore) 的類型。
val make : bool -> t
make b
回傳一個新的二元號誌。如果 b
為 true
,號誌的初始值為 1,代表「可用」。如果 b
為 false
,號誌的初始值為 0,代表「不可用」。
val release : t -> unit
release s
將號誌 s
的值設為 1,使其進入「可用」狀態。如果有其他執行緒正在等待 s
,其中一個將會被重新啟動。
val acquire : t -> unit
acquire s
會阻塞呼叫的執行緒,直到號誌 s
的值為 1(可用)為止,然後自動將其設為 0 並回傳。
val try_acquire : t -> bool
try_acquire s
如果號誌 s
的值為 0,會立即回傳 false
。如果 s
的值為 1,則會自動將其值設為 0,並且 try_acquire s
會回傳 true
。