Guile Reference Manual
32.1 Arbiters
Arbiters are synchronization objects. They are created with
make-arbiter. Two or more threads can synchronize on an arbiter
by trying to lock it using try-arbiter. This call will succeed
if no other thread has called try-arbiter on the arbiter yet,
otherwise it will fail and return #f. Once an arbiter is
successfully locked, it cannot be locked by another thread until the
thread holding the arbiter calls release-arbiter to unlock it.
- Scheme Procedure: make-arbiter name
-
- C Function: scm_make_arbiter (name)
- Return an object of type arbiter and name name. Its
state is initially unlocked. Arbiters are a way to achieve
process synchronization.
- Scheme Procedure: try-arbiter arb
-
- C Function: scm_try_arbiter (arb)
- Return
#t and lock the arbiter arb if the arbiter
was unlocked. Otherwise, return #f.
- Scheme Procedure: release-arbiter arb
-
- C Function: scm_release_arbiter (arb)
- Return
#t and unlock the arbiter arb if the
arbiter was locked. Otherwise, return #f.