Next: , Previous: , Up: SRFI-18   [Contents][Index] SRFI-18 Mutexes

The behavior of Guile’s built-in mutexes is parameterized via a set of flags passed to the make-mutex procedure in the core (see Mutexes and Condition Variables). To satisfy the requirements for mutexes specified by SRFI-18, the make-mutex procedure described below sets the following flags:

Function: make-mutex [name]

Returns a new mutex, optionally assigning it the object name name, which may be any Scheme object. The returned mutex will be created with the configuration described above. Note that the name make-mutex conflicts with Guile core function make-mutex. Applications wanting to use both of these functions will need to refer to them by different names.

Function: mutex-name mutex

Returns the name assigned to mutex at the time of its creation, or #f if it was not given a name.

Function: mutex-specific mutex
Function: mutex-specific-set! mutex obj

Get or set the “object-specific” property of mutex. In Guile’s implementation of SRFI-18, this value is stored as an object property, and will be #f if not set.

Function: mutex-state mutex

Returns information about the state of mutex. Possible values are:

Function: mutex-lock! mutex [timeout [thread]]

Lock mutex, optionally specifying a time object timeout after which to abort the lock attempt and a thread thread giving a new owner for mutex different than the current thread. This procedure has the same behavior as the lock-mutex procedure in the core library.

Function: mutex-unlock! mutex [condition-variable [timeout]]

Unlock mutex, optionally specifying a condition variable condition-variable on which to wait, either indefinitely or, optionally, until the time object timeout has passed, to be signalled. This procedure has the same behavior as the unlock-mutex procedure in the core library.

Next: , Previous: , Up: SRFI-18   [Contents][Index]