My linux application is performing non-blocking TCP connect syscall and then use epoll_wait
to detect three way handshake completion.
Sometimes epoll_wait
returns with both POLLOUT
& POLLERR
events set for the same socket descriptor.
I would like to understand what's going on at TCP level. I'm not able to reproduce it on demand. My guess is that between two calls to epoll_wait
inside my event loop we had a SYN+ACK/ACK/FIN sequence but again I'm not able to reproduce it.