[Bordeaux-threads-devel] Lispworks additions to Bordeaux - where do I submit?
Matthew Lamari
matt.lamari at gmail.com
Sun Jun 1 05:23:32 UTC 2008
I have a lispworks.lisp for bordeaux in which I've added a few entries to
bring it more into line with sbcl and cmucl's capabilities
Most notable is condition variable support. Lispworks doesn't appear to
support the same conditionals per se (probably why it wasn't trivially added
to bordeaux) but its Lispworks wait seems to poll some predicate at some
interval - I emulated conditions out of these.
The condition variable basically stores a hashtable (containing only
unnotified waiters known to be waiting) and a t-list for supporting queue
ordering. Notification notifies only a SINGLE ELEMENT, as the docs claimed
was desirable. I've included checks for some plausible cases where a
process could leave the wait for reasons other than receiving the
notification; but to ensure that an eligible waiter receives the next
notification when it arrives. Unwind-protection ensures that the registered
waiter is removed from the data structure, and that any unseen notification
is passed on to the next waiter.
Please let me know if this sounds to be on the right track, and how/to whom
I should submit the change.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/bordeaux-threads-devel/attachments/20080601/068435cd/attachment.html>
More information about the bordeaux-threads-devel
mailing list