GNU Info

Info Node: (guile.info)Higher level thread procedures

(guile.info)Higher level thread procedures


Prev: Low level thread primitives Up: Threads
Enter node , (file) or (file)node

Higher level thread procedures
------------------------------

 - primitive: call-with-new-thread thunk error-thunk
     Evaluate `(thunk)' in a new thread, and new dynamic context,
     returning a new thread object representing the thread.

     If an error occurs during evaluation, call error-thunk, passing it
     an error code describing the condition.  [Error codes are currently
     meaningless integers.  In the future, real values will be
     specified.]  If this happens, the error-thunk is called outside
     the scope of the new root - it is called in the same dynamic
     context in which with-new-thread was evaluated, but not in the
     callers thread.

     All the evaluation rules for dynamic roots apply to threads.

 - primitive: join-thread thread
     Suspend execution of the calling thread until the target THREAD
     terminates, unless the target THREAD has already terminated.

 - primitive: yield
     If one or more threads are waiting to execute, calling yield
     forces an immediate context switch to one of them. Otherwise,
     yield has no effect.

 - primitive: make-mutex
     Create a new mutex object.

 - primitive: lock-mutex mutex
     Lock MUTEX. If the mutex is already locked, the calling thread
     blocks until the mutex becomes available. The function returns when
     the calling thread owns the lock on MUTEX.

 - primitive: unlock-mutex mutex
     Unlocks MUTEX if the calling thread owns the lock on MUTEX.
     Calling unlock-mutex on a mutex not owned by the current thread
     results in undefined behaviour. Once a mutex has been unlocked,
     one thread blocked on MUTEX is awakened and grabs the mutex lock.


automatically generated by info2www version 1.2.2.9