[issue9611] FileIO not 64-bit safe under Windows

Antoine Pitrou report at bugs.python.org
Sun Aug 15 21:05:38 CEST 2010


Antoine Pitrou <pitrou at free.fr> added the comment:

Le dimanche 15 août 2010 à 18:53 +0000, Martin v. Löwis a écrit :
> Martin v. Löwis <martin at v.loewis.de> added the comment:
> 
> > Well, the loop stops when an error status is returned by the raw IO
> > layer. At that point, the buffered IO layer re-raises the error after a
> > bit of internal cleanup.
> 
> Assume the following case:
> 1. writing starts, and writes some data
> 2. Ctrl-C is pressed, raises a signal, and interrupts the current
>    system call (EINTR)
> 3. having already written data, the signal is discarded, and the
>    number of successfully written bytes is returned.
> 4. the loop retries to write the rest. Not receiving any signal
>    anymore, the subsequent write operations wait for completion.

Ok, I guess the loop should run PyErr_CheckSignals() somewhere.

Simulate such a situation in an unit test will be a bit tricky.
Perhaps we can use os.pipe() and depend on the fact that writes greater
than the pipe buffer size will be blocking.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue9611>
_______________________________________


More information about the Python-bugs-list mailing list