Warning: This is the manual of the legacy Guile 2.0 series. You may want to read the manual of the current stable series instead.
Next: SRFI-18 Condition variables, Previous: SRFI-18 Threads, Up: SRFI-18 [Contents][Index]
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:
recursive
: the mutex can be locked recursively
unchecked-unlock
: attempts to unlock a mutex that is already
unlocked will not raise an exception
allow-external-unlock
: the mutex can be unlocked by any thread,
not just the thread that locked it originally
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.
Returns the name assigned to mutex at the time of its creation,
or #f
if it was not given a name.
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.
Returns information about the state of mutex. Possible values are:
T
: the mutex is in the locked/owned state and thread T
is the owner of the mutex
not-owned
: the mutex is in the locked/not-owned state
abandoned
: the mutex is in the unlocked/abandoned state
not-abandoned
: the mutex is in the
unlocked/not-abandoned state
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.
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: SRFI-18 Condition variables, Previous: SRFI-18 Threads, Up: SRFI-18 [Contents][Index]