Allow non-blocking listens
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 20 Jul 2015 11:36:13 +0000 (07:36 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 24 Jul 2015 07:05:14 +0000 (03:05 -0400)
commit5ed5fd872728cf4a031e96b3cf3268ceab8ed30b
treebfd83458f18c2bf788b5d2648e1eac3da68c7708
parent971232774dcefed89c09833c071cc517bb2c7443
Allow non-blocking listens

Plan 9 listens (accept() in the sockets world) can now be set to
non-blocking.

I didn't build in suport for accept4()-type SOCK_NONBLOCK, which sets
the *new* conversation/socket to non-blocking, saving a syscall.  Our
accept()s and listen()s are already super slow, and we will need a
faster interface.  We already use seven syscalls for the accept() shim,
and a normal Plan 9 listen takes three or four (depending on whether or
not you keep the ctlfd around).  That's way too much.  We can build
something like accept4() natively (still going through #I, but not using
open(), or at least not the traditional open().
kern/src/net/devip.c