[Gbbopen-developer] Significant revision of GBBopen's Portable Threads interface
Dan Corkill
corkill at gbbopen.org
Sun Jul 8 18:35:33 EDT 2007
A new version of the :portable-threads module is in the works (nearing
completion, actually). This revision has been needed (and promised) for
some time now, and that time has finally come.
High-level changes include:
* Clarified semantics for recursive and nonrecursive locks, with
stronger enforcement of usage violations (to reduce the potential
for different behavior on different CL implementations).
* Emphasis on condition variables as the preferred longer-duration
wait mechanism. Condition variables will be emulated on CLs that
don't provide them directly. Condition-variable broadcast is
challenging on some CLs, but the goal is to provide it (in
addition to signal) where ever feasible.
* Lisp-predicate-based waiting (process-wait and
process-wait-with-timeout) will remain supported, but this third
form of thread synchronization should be reserved for rare
situations. It is not efficient with native threads and can
generally be replaced with a condition-variable approach.
* Allegro-style gates are depreciated and will be removed soon
(so don't use them once the new revision is released).
* Hibernate and awaken are at risk for deprecation, but they may
remain (implemented using condition-variables on CLs that don't
provide them natively)... that decision is still fluid.
* The names of many functions will be changed (for consistency with
new capabilities and to make the portable-threads interface names
more "thread"-centric rather than "process"-centric). A complete
list of name changes will be provided as the new version becomes
available.
Backward compatibility with the current version of :portable-threads
will be supported, but users should migrate quickly to the new release
as backward compatibility will be dropped relatively soon. This
revision involves a number of changes all at once, but the intent is to
bite the bullet all at once rather than piecemeal over time.
Happy multithreading...
-- Dan
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
More information about the Gbbopen-developer
mailing list