return 0 when O_NDELAY is set and there is nothing to read. We
want the O_NONBLOCK behavior where read returns -1 and sets
errno to EAGAIN when there is nothing to read.
multiple systems with automake, with X Windows and Carbon window
system APIs supported. It's also a starting port for supporting
win32 builds using mingw. OS X support is incomplete; the tree
will compile and link but the binaries will not function.
poll() but there was a race condition where the thread trying
to unblock poll() could send the signal before the polling
thread had entered poll(). Now using a pipe and polling on
that and the client's sockets, and just writing a byte into
the pipe to unblock poll. This persists until the next call
to poll() so we might force poll() to return once unnecessarily
but that's not a problem. This change makes the BSD code
similar to the winsock code, which uses a winsock event instead
of a pipe.
event loop model. Streams, stream filters, and sockets are
converted. Client proxies are almost converted. CServer is
in progress. Removed all HTTP code. Haven't converted the
necessary win32 arch stuff.
an event queue and events, TCP sockets converted to use events,
unix multithreading and network stuff converted, and an X Windows
event queue subclass.
lib/arch. This should make porting easier. Will probably
continue to refactor a little more, moving platform dependent
event handling stuff into lib/platform.