Node:Low level thread primitives, Next:Higher level thread procedures, Up:Threads
call-with-new-thread thunk error-handler | Scheme Procedure |
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-handler, 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-handler 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 caller's thread. All the evaluation rules for dynamic roots apply to threads. |
join-thread thread | Scheme Procedure |
Suspend execution of the calling thread until the target thread terminates, unless the target thread has already terminated. |
yield | Scheme Procedure |
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. |
make-mutex | Scheme Procedure |
Create a new mutex object. |
lock-mutex mutex | Scheme Procedure |
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. |
unlock-mutex mutex | Scheme Procedure |
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. |
make-condition-variable | Scheme Procedure |
wait-condition-variable cond-var mutex | Scheme Procedure |
signal-condition-variable cond-var | Scheme Procedure |