Node:Arbiters,
Next:Asyncs,
Up:Scheduling
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.
make-arbiter name
|
Scheme Procedure |
scm_make_arbiter (name)
|
C Function |
Return an object of type arbiter and name name. Its
state is initially unlocked. Arbiters are a way to achieve
process synchronization.
|
try-arbiter arb
|
Scheme Procedure |
scm_try_arbiter (arb)
|
C Function |
Return #t and lock the arbiter arb if the arbiter
was unlocked. Otherwise, return #f .
|
release-arbiter arb
|
Scheme Procedure |
scm_release_arbiter (arb)
|
C Function |
Return #t and unlock the arbiter arb if the
arbiter was locked. Otherwise, return #f .
|