My above patch makes an improvement, but there's still timeouts. Unclear whether the timeouts are real or not yet. However, after talking with soren again, I've decided to try to fix eventlet more correctly by checking if a timeout exception was returned... and then re-trying a non-blocking event once more. If this 2nd non-blocking event fails, it returns original timeout exception. Attached is a start to the patch. My test case passes, but I need to fix the rest of the socket wrapper calls, yet. I've done connect(), recv(), recvfrom() so far. (See attached patch).
My above patch makes an improvement, but there's still timeouts. Unclear whether the timeouts are real or not yet. However, after talking with soren again, I've decided to try to fix eventlet more correctly by checking if a timeout exception was returned... and then re-trying a non-blocking event once more. If this 2nd non-blocking event fails, it returns original timeout exception. Attached is a start to the patch. My test case passes, but I need to fix the rest of the socket wrapper calls, yet. I've done connect(), recv(), recvfrom() so far. (See attached patch).