Message 137357 - Python tracker
If socket timeout > 0, then there is no way to automatically restart some socket calls like recv(). Calling siginterrupt(False) is useless, because python calls internal_select() if socket has timeout, and select returns error(EINTR) once interrupted by a signal, regardless of the SA_RESTART flags. So a user may have to wrap every socket calls in this case. I found some related discussions in http://bugs.python.org/issue7978