This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author neologix
Recipients brandjon, jnoller, neologix, pitrou
Date 2012-01-24.09:07:38
SpamBayes Score 9.824919e-13
Marked as misclassified No
Message-id <CAH_1eM2GDAgDa_R7wOn2fpBC-YtW_6qdY1hbudVB0TJ9SRCanA@mail.gmail.com>
In-reply-to <1327338603.79.0.307755692134.issue13812@psf.upfronthosting.co.za>
Content
> I propose applying the following patch.

The test looks good to me (except we don't remove TESTFN explicitely,
but I'm not sure it's really necessary).

As for the patch, couldn't we put all the file stream flushing in one place?

stdout and stderr are already flushed on Unix (which explains why this
only happens on Windows: the libc puts non-tty streams in _IOFBF, so
this wouldn't work without explicit flushing neither).

Lib/multiprocessing/forking.py:Popen.__init__:
           code = process_obj._bootstrap()
           sys.stdout.flush()
           sys.stderr.flush()
           os._exit(code)

Also, there's already a flush() a couple lines above (in _bootstrap):
           sys.stderr.write(e.args[0] + '\n')
           sys.stderr.flush()

So I'd suggest to just put:

           sys.stdout.flush()
           sys.stderr.flush()

At the end of _bootstrap, and remove the flushing done by
Popen.__init__ on Unix.
History
Date User Action Args
2012-01-24 09:07:40neologixsetrecipients: + neologix, pitrou, jnoller, brandjon
2012-01-24 09:07:39neologixlinkissue13812 messages
2012-01-24 09:07:38neologixcreate