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'.