[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