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 |