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.

— Scheme Procedure: make-arbiter name
— C Function: scm_make_arbiter (name)

Return a new arbiter object named 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)

Lock arbiter arb and return #t if it was unlocked. Otherwise, return #f.

— Scheme Procedure: release-arbiter arb
— C Function: scm_release_arbiter (arb)

Unlock arbiter arb and return #t if it was locked. Otherwise, return #f.