
On 7 May 2012 00:22, Helmut Eller <heller@common-lisp.net> wrote:
regression: I tried to use the :timeout argument of sb-thread:condition-wait that was added in version 1.0.54 or so. Obviously it doesn't work as I had expected; I'll restore the previous
Without digging deeper, it seems to me that there is an outer deadline from another WITH-DEADLINE. In the old version you're using :OVERRIDE, which means that even if you specify a longer wait, you get what you ask for. In the new version the outer WITH-DEADLINE specifies a shorter wait than the :TIMEOUT you request, and that happens -- and a deadline-timeout is signalled, etc. Using bleeding edge SBCL and '(sb-sys:with-deadline (:seconds nil :override t) (sb-thread:condition-wait waitqueue mutex :timeout timeout))) in the first leg, the tests pass after removing nil ; FIXME: :timeout doesn't work. Why? ...but since ability to specify :SECONDS NIL is very new, it's probably best not to depend on that just now. Finding the outer source of deadline is probably a better bet. Cheers, -- Nikodemus