LispWorks User Guide and Reference Manual > 15 Multiprocessing


15.9 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:

15.9.1 Condition variables

15.9.2 Synchronization barriers

15.9.3 Counting semaphores

LispWorks User Guide and Reference Manual - 22 Dec 2009