www.delorie.com/gnu/docs/guile/guile_366.html   search  
 
Buy GNU books!


Guile Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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.


  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003