I'm using Poco 1.4.4 with the fix in for setting the timeout prior to handshakes.
What I'm seeing now is this situation:
Windows VM and OSX system talking over SSL. While a connection was active, took down the Windows VM. Now the OSX-side it stuck in an infinite loop in SecureSocketImpl::sendBytes. The 'do/while' loop ending on line 292 of SecureSocketImpl.cpp breaks with rc == -1. Then it pops back up to SecureStreamSocketImpl::sendBytes. There's a check if(n < 0 && !blocking) return n;, the socket is blocking, so no return. It then yields the thread and tries again. Over and over again.
I'm not 100% sure on this, but it seems like if the return from _impl.sendBytes <= 0 on a blocking socket, that should be an error and it should throw.