[usocket-devel] Patch: Fix SYSCALLS loading on OpenMCL

Hans Hübner hans at huebner.org
Fri Apr 11 22:18:08 UTC 2008


Hi Erik,

thank you for committing the changes I submitted.

Deadlines and timeouts are of particular importance to me, so let me
describe what the difference between the two are:

A stream timeout, as it is commonly available (i.e. in Lispworks or
CCL), is usually implemented by setting low-level timeouts on the file
descriptors underlying the stream.  The result of this is that I/O
operations on the stream level may take a lot longer than the timeouts
specified, as stream operations may map to a series of low-level file
descriptor calles that are governed by a timeout.

Stream deadlines, as implemented in CCL 1.2, are specified as absolute
time in the future.  The meaning of a stream deadline is that no I/O
operation on the stream should be possible after the deadline time.

Deadlines are useful if one wants to limit overall request execution
times in systems that initiate outgoing network transactions without
having to resort to asynchronous mechanisms which are inherently risky
and less robust than synchronous ones.  I hope that other Lisp
implementors can be convinced to support them in the future, but for
the moment, I'd be fine if usocket supports deadlines for CCL, as that
is what the application I am working on runs on.

I can revisit my patch so that the deadline argument is supported on
all platforms, generating an error for those platforms that can't
support it.

Just as an unrelated heads up:  I am going to port the Hunchentoot
http server over to usocket for the same reason.  We want to have a
fixed upper bound on http request reading and response writing as
well.

Thanks again!
Hans



More information about the usocket-devel mailing list