Re the fcntl's to set O_NONBLOCK, I remember talking about this and being worried because of the fact that file descriptors might be shared (via dup, dup2 or fork), but other than that, the basis library could remember the mode it left the socket in. Does it do that?