[iolib-devel] accept question
Hello, I have a few questions... On a busy server, sometimes a connection to a server aborts before the accept returns. An example is: client calls connect, server gets SYN, sends back SYN,ack, connect returns in the client, the connection is ESTABLISHED, then some time passes, the client sends RST, and *then* the server calls accept. At this point the accept returns ECONNABORTED (well, it depends on the unix distro, actually). Does iolib internally catch this and restart the accept, is there a signaled condition? what does it do? Also, related, how does iolib, or the underlying implementation's accept, deal with EINTR in the various calls? Especially with a nonblocking connect, which usually requires a trip through select() in order to deal with the socket? And, finally, is there any stable interface to the abstracted multiplexer so I can do nonblocking i/o between multiple clients? If not, the only solution left to me is threading, and I'm not sure how sbcl scales to ten thousand+ threads. Instead of the callback method, is there a "give a pile of read/write/except sockets to a fake select which implements the select semantic with real select/pool/kqueue"? Additionally, is there any means to do nonblocking i/o on *standard-input* or *standard-output*? Thank you. -pete
participants (1)
-
Peter Keller