I'm working on a proxy application that uses non-blocking socket I/O. A limited number of threads use epoll to handle events, and each thread runs process bound as much as it can. The SSL implementation uses read_SSL and write_SSL, with logic to handle "read wants write" etc. When reading, processing is triggered by an EPOLLIN event and read_SSL will read all the data available - after an initial read, a loop is controlled by SSL_pending(). The problem is that with a large volume of data the read process comes to a halt. Perhaps this means that there was unprocessed data that has been received but cannot be read. In that case, the read loop will not get all the data, but neither will there be an EPOLLIN event. If this happens when no further data is to be sent, the connection comes to a halt (if my analysis is correct). Or maybe my analysis isn't correct! I'd be grateful for any pointers to how I can get out of this problem! -- View this message in context: http://openssl.6102.n7.nabble.com/OpenSSL-non-blocking-epoll-hanging-on-data-receiving-tp66355.html Sent from the OpenSSL - User mailing list archive at Nabble.com.