Node:Arbiters, Next:, 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.