BORDEAUX-THREADS is a proposed standard for a minimal MP/Threading interface. It is similar to the CLIM-SYS threading and lock support, but for the following broad differences: - Some behaviours are defined in additional detail: attention has been given to special variable interaction, whether and when cleanup forms are run. Some behaviours are defined in less detail: an implementation that does not support multiple threads is not required to use a new list (nil) for a lock, for example. - Many functions which would be difficult, dangerous or inefficient to provide on some implementations have been removed. Chiefly these are functions such as thread-wait which expect for efficiency that the thread scheduler is written in Lisp and 'hookable', which can't sensibly be done if the scheduler is external to the Lisp image, or the system has more than one CPU. - Unbalanced ACQUIRE-LOCK and RELEASE-LOCK functions have been added. - Posix-style condition variables have been added, as it's not otherwise possible to implement them correctly using the other operations that are specified.
18 lines
1.1 KiB
Text
18 lines
1.1 KiB
Text
BORDEAUX-THREADS is a proposed standard for a minimal MP/Threading interface.
|
|
It is similar to the CLIM-SYS threading and lock support, but for the following
|
|
broad differences:
|
|
|
|
- Some behaviours are defined in additional detail: attention has been given to
|
|
special variable interaction, whether and when cleanup forms are run. Some
|
|
behaviours are defined in less detail: an implementation that does not
|
|
support multiple threads is not required to use a new list (nil) for a lock,
|
|
for example.
|
|
- Many functions which would be difficult, dangerous or inefficient to provide
|
|
on some implementations have been removed. Chiefly these are functions such
|
|
as thread-wait which expect for efficiency that the thread scheduler is
|
|
written in Lisp and 'hookable', which can't sensibly be done if the scheduler
|
|
is external to the Lisp image, or the system has more than one CPU.
|
|
- Unbalanced ACQUIRE-LOCK and RELEASE-LOCK functions have been added.
|
|
- Posix-style condition variables have been added, as it's not otherwise
|
|
possible to implement them correctly using the other operations that are
|
|
specified.
|