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

Attachment: nodelay-patch.diff
Description: Binary data

_______________________________________________
usocket-devel mailing list
usocket-devel@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/usocket-devel

Reply via email to