模組 Stdlib.Mutex

module Mutex: Mutex

type t 

互斥鎖的類型。

val create : unit -> t

回傳一個新的互斥鎖。

val lock : t -> unit

鎖定指定的互斥鎖。任何時間都只有一個執行緒可以鎖定互斥鎖。嘗試鎖定已被其他執行緒鎖定的互斥鎖的執行緒將會暫停,直到其他執行緒解鎖互斥鎖。

val try_lock : t -> bool

Mutex.lock 相同,但如果互斥鎖已被鎖定,則不會暫停呼叫執行緒:在這種情況下會立即回傳 false。如果互斥鎖未鎖定,則鎖定它並回傳 true

val unlock : t -> unit

解鎖指定的互斥鎖。其他嘗試鎖定互斥鎖而被暫停的執行緒將會重新啟動。互斥鎖必須先前已由呼叫 Mutex.unlock 的執行緒鎖定。

val protect : t -> (unit -> 'a) -> 'a

protect mutex fmutex 被鎖定的臨界區段中執行 f() (使用 Mutex.lock);然後它會負責釋放 mutex,無論 f() 回傳值或引發例外。

即使在某些訊號處理程式中引發非同步例外 (例如 Sys.Break),也保證解鎖操作總是會發生。