[usocket-devel] more convenient :nodeay option - :if-supported

Hans Hübner hans at huebner.org
Fri Jan 20 22:35:37 UTC 2012


Anton,

I committed your patch to usocket's trunk, thanks a lot!

-Hans

On Fri, Jan 20, 2012 at 11:23 PM, Anton Vodonosov <avodonosov at yandex.ru> wrote:
> Hello.
>
> Today socket-connect option :nodelay if specified accepts T or NIL. And whatever value is passed,
> socket-connect signals the UNSUPPORTED exception on implementations where it is not
> possible to control the socket no-delay property.
>
> This dooms any usocket-using code which wishes to use :nodelay to be broken on
> implementations where it is not implemented (e.g. CLISP, CMUCL, ...).
>
> I think in most cases users would prefer "no delay if possible, otherwise just work as you can"
> behavior. For example drakma. On the implementations where it is possible, it will have
> maximum performance by specifying no-delay. But on other implementations it is desirable
> to work on usual socket.
>
> To support this in backward-compatible fashion I propose to introduce another value
> for the :nodelay option. :nodelay :if-supported. The meaning is obvious.
>
> Please see the patch attached. It is tested (by changing drakma to use :nodelay :if-supported)
> on all the implementations available to me: Allegro, CCL, CLISP, SBCL.
>
> Can't test on ECL and ABCL because of other obstacles (the last public release of ECL
> can't comile babel, and ABCL can't load cffi).
>
> Best regards,
> - Anton




More information about the usocket-devel mailing list