1.0.42.43: FD-STREAMS no longer hook into SERVE-EVENT by default
authorNikodemus Siivola <nikodemus@random-state.net>
Sun, 19 Sep 2010 20:08:47 +0000 (20:08 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sun, 19 Sep 2010 20:08:47 +0000 (20:08 +0000)
commit6e02a5455aeef5a4642a2334348544c1f19775ad
tree9c903f1fbddeebeb8a2df06b2eb6aafa568d7b45
parent809babfb68a91aa47a7f011972d39915a77a9895
1.0.42.43: FD-STREAMS no longer hook into SERVE-EVENT by default

 * SOCKET-MAKE-STREAM, and MAKE-FD-STREAM have new keyword
   argument :SERVE-EVENTS which requests that blocking IO on the
   stream should dispatch to SERVE-EVENT. For SOCKET-MAKE-STREAM the
   default is T, for MAKE-FD-STREAM the default it NIL.

 * Don't call SYSREAD-MAY-BLOCK-P at all unless we need to to handle
   events or check for timeout.

 * Make WAIT-UNTIL-FD-USABLE use UNIX-SIMPLE-POLL instead of going
   into SUB-SERVE-EVENT when appropriate:

   ** Explicit requests to not serve events.

   ** Timeout 0.

   ** No other handlers and no periodic polling function.

 * When FD-STREAM-SERVE-EVENTS is false but write returns EWOULDBLOCK,
   don't queue output but wait till poll(2) says we can go.

 * UNIX-SIMPLE-POLL uses poll() only on platforms where a build-time
   test shows it to exist and work as expected. Elsewhere it is built
   on top of good 'ol select().
NEWS
contrib/sb-bsd-sockets/sockets.lisp
contrib/sb-rt/rt.lisp
src/code/condition.lisp
src/code/fd-stream.lisp
src/code/serve-event.lisp
src/code/unix.lisp
tools-for-build/grovel-features.sh
tools-for-build/grovel-headers.c
tools-for-build/os-provides-poll-test.c [new file with mode: 0644]
version.lisp-expr