I have added a :timeout option to condition-wait.
git pull https://github.com/lmj/bordeaux-threads
Tested on ABCL, Allegro, CLISP, Clozure, ECL, LispWorks 6.1, and SBCL.
I don't have SCL, but if the documentation is correct then it should be OK.
On Tue, Apr 17, 2012 at 8:20 PM, Thomas Munro munro@ip9.org wrote:
On 17 April 2012 15:11, Stelian Ionescu sionescu@cddr.org wrote:
I'd like to, but what do we do for those implementations that don't support timeouts ?
I went through the existing implementations and googled for timeout variants of the mechanisms being used and found these:
ABCL: (threads:object-wait condition timeout) Allegro: ? Clisp: (mt:exemption exemption mutex :timeout timeout) Clozure: (ccl:timed-wait-on-semaphore semaphore timeout) CMUCL: ? Corman: ? ECL: (mp:condition-variable-timedwait condition mutex timeout) LispWorks simulated: ? LispWorks 6: (mp:condition-variable-wait condition mutex :timeout timeout) MCL: ? SBCL: (sb-thread:condition-wait condition mutex :timeout timeout) SCL: (thread:cond-var-timedwait condition mutex timeout)
I couldn't immediately grok those with question marks, but I suspect it's possible for most of them though. I hope someone who knows those systems can comment.
I don't have any suggestion on what to do if there is no implementation apart from the obvious and unsatisfactory 'raise an error at runtime'.
Bordeaux-threads-devel mailing list Bordeaux-threads-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/bordeaux-threads-devel