Message239975
> - I've learned that MSG_WAITALL may be unreliable on certain systems, so any implementation of recvall depending on MSG_WAITALL may inexplicably fail on such systems
Something else occurred since 5 years: the PEP 475 was accepted, it makes Python more reliable when it receives signals.
If recv(WAIT_ALL) is interrupted by a signal and returns less bytes, we must call PyErr_CheckSignal(). If the signal handler raises an exception, drop read data and raises the exception. If the signal handler does not raise an exception, we now *must* retry recv(WAIT_ALL) (with a shorter length, to not read too much data).
The IncompleteRead exception is still needed if the socket is closed before receiving the requested number of bytes. |
|
Date |
User |
Action |
Args |
2015-04-03 12:02:55 | vstinner | set | recipients:
+ vstinner, loewis, irmen, pitrou |
2015-04-03 12:02:55 | vstinner | set | messageid: <1428062575.5.0.529131609278.issue1103213@psf.upfronthosting.co.za> |
2015-04-03 12:02:55 | vstinner | link | issue1103213 messages |
2015-04-03 12:02:55 | vstinner | create | |
|