Is it possible that a write() call on a socket has failed but the poll() doesn't detect any error? Are there any category of errors that can cause the write to fail but are not considered an error by the poll() system call?
I have a dispatcher thread that keeps monitoring the sockets and is responsible for detecting and handling socket errors. I have a worker thread that does the actual read and write on the sockets when notified by the dispatcher thread. The write() calls by the worker thread fails but the poll() system call by the dispatcher thread never reports back an error. How can this happen!