[Bordeaux-threads-devel] Patch for ABCL against BORDEAUX-THREADS-0.8.0
ABCL's multithreading symbols have moved to THREADS package (this was deprecated with abcl-0.18 and removed with abcl-0.22). Implement CONDITION-WAIT and CONDITION-NOTIFY for ABCL. Use 10ms pause for ABCL's THREAD-YIELD. -- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."
On Fri, 03 Dec 2010 14:37:52 +0100, Mark Evenson said:
Implement CONDITION-WAIT and CONDITION-NOTIFY for ABCL.
That version of CONDITION-WAIT won't work properly: - More than one thread can wake up from a single call to CONDITION-NOTIFY. - If CONDITION-WAIT is called while another thread is inside THREAD-YIELD, then any pending "active" state will be lost (i.e. CONDITION-NOTIFY will fail to wake a thread). Also, what is te purpose of the CONDITION-VARIABLE-LOCK (which is only used by CONDITION-NOTIFY)? __Martin
On 12/3/10 4:56 PM, Martin Simmons wrote:
On Fri, 03 Dec 2010 14:37:52 +0100, Mark Evenson said:
Implement CONDITION-WAIT and CONDITION-NOTIFY for ABCL.
That version of CONDITION-WAIT won't work properly:
Indeed it won't: thanks for the comments, and the kick in the butt. After studying the needed abstractions in more detail I've [reimplemented most of the BORDEAUX-THREADS interfaces for ABCL based on the java.util.concurrent.ReentrantLock][1]. This code should now correctly implement the POSIX-style condition variables, the recursively held locks, and the form of lock acquisition that returns immediately. Please consider the referenced patch for inclusion in BORDEAUX-THREADS. [1]: http://slack.net/~evenson/abcl/hunchentoot/bordeaux-threads-abcl-20101204a.d... -- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."
participants (2)
-
Mark Evenson
-
Martin Simmons