On 7 May 2012 08:45, Helmut Eller heller@common-lisp.net wrote:
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.
Is WITH-DEADLINE part of the official API? Seriously?
If you mean "am I really supposed to wrap WITH-DEADLINE around CONDITION-WAIT calls", not generally.
In this case however, something else, probably the :AROUND method on STREAM-FORCE-OUTPUT, has provided a tighter deadline. In such case the system obeys the global deadline. Sticking a longer deadline into S-F-E :AROUND would achieve the same result from practical POV.
Cheers,
-- Nikodemus