Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Commit [6e02a5] Maximize Restore History

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().

Nikodemus Siivola Nikodemus Siivola 2010-09-19

added tools-for-build/os-provides-poll-test.c
changed contrib/sb-bsd-sockets/sockets.lisp
changed contrib/sb-rt/rt.lisp
changed src/code/condition.lisp
changed src/code/fd-stream.lisp
changed src/code/serve-event.lisp
changed src/code/unix.lisp
changed tools-for-build/grovel-features.sh
changed tools-for-build/grovel-headers.c
changed NEWS
changed version.lisp-expr
tools-for-build/os-provides-poll-test.c Diff Switch to side-by-side view
Loading...
contrib/sb-bsd-sockets/sockets.lisp Diff Switch to side-by-side view
Loading...
contrib/sb-rt/rt.lisp Diff Switch to side-by-side view
Loading...
src/code/condition.lisp Diff Switch to side-by-side view
Loading...
src/code/fd-stream.lisp Diff Switch to side-by-side view
Loading...
src/code/serve-event.lisp Diff Switch to side-by-side view
Loading...
src/code/unix.lisp Diff Switch to side-by-side view
Loading...
tools-for-build/grovel-features.sh Diff Switch to side-by-side view
Loading...
tools-for-build/grovel-headers.c Diff Switch to side-by-side view
Loading...
NEWS Diff Switch to side-by-side view
Loading...
version.lisp-expr Diff Switch to side-by-side view
Loading...