diff options
author | Antoine Pitrou <pitrou@free.fr> | 2018-03-11 19:21:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-11 19:21:38 +0100 |
commit | e756f66c83786ee82f5f7d45931ae50a6931dd7f (patch) | |
tree | f3d6b9bd7d6319fc3149841bb7498e326d9fe7c9 /Lib/multiprocessing/util.py | |
parent | 9fb84157595a385f15799e5d0729c1e1b0ba9d38 (diff) | |
download | cpython-git-e756f66c83786ee82f5f7d45931ae50a6931dd7f.tar.gz |
bpo-31804: Fix multiprocessing.Process with broken standard streams (#6079)
In some conditions the standard streams will be None or closed in the child process (for example if using "pythonw" instead of "python" on Windows). Avoid failing with a non-0 exit code in those conditions.
Report and initial patch by poxthegreat.
Diffstat (limited to 'Lib/multiprocessing/util.py')
-rw-r--r-- | Lib/multiprocessing/util.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Lib/multiprocessing/util.py b/Lib/multiprocessing/util.py index f0827f0a96..0c4eb24732 100644 --- a/Lib/multiprocessing/util.py +++ b/Lib/multiprocessing/util.py @@ -392,6 +392,20 @@ def _close_stdin(): pass # +# Flush standard streams, if any +# + +def _flush_std_streams(): + try: + sys.stdout.flush() + except (AttributeError, ValueError): + pass + try: + sys.stderr.flush() + except (AttributeError, ValueError): + pass + +# # Start a program with only specified fds kept open # |