All Manuals > LispWorks User Guide and Reference Manual > 15 Multiprocessing


15.6 Synchronization between threads

In LispWorks 5.1 and previous versions, the main way to synchronize between threads is to use mp:process-wait or mp:process-wait-with-timeout to supply a predicate to the scheduler. The predicate runs periodically in the background to identify threads that are no longer blocked.

These functions are still available, but there are some alternatives that can be more efficient in many cases by removing the need for the scheduler. The alternatives are:

Access to all of these objects is atomic and does not require additional locks (except for the lock that is already used with a condition variable).

15.6.1 Condition variables

15.6.2 Synchronization barriers

15.6.3 Counting semaphores

LispWorks User Guide and Reference Manual - 21 Dec 2011