Set parent process's input stream inside the build process. (#2535)
This commit is contained in:
parent
eb645a8e46
commit
8f28c9009e
@ -1218,6 +1218,19 @@ def build_process(input_stream):
|
|||||||
"""Forked for each build. Has its own process and python
|
"""Forked for each build. Has its own process and python
|
||||||
module space set up by build_environment.fork()."""
|
module space set up by build_environment.fork()."""
|
||||||
|
|
||||||
|
# We are in the child process. This means that our sys.stdin is
|
||||||
|
# equal to open(os.devnull). Python did this to prevent our process
|
||||||
|
# and the parent process from possible simultaneous reading from
|
||||||
|
# the original standard input. But we assume that the parent
|
||||||
|
# process is not going to read from it till we are done here,
|
||||||
|
# otherwise it should not have passed us the copy of the stream.
|
||||||
|
# Thus, we are free to work with the the copy (input_stream)
|
||||||
|
# however we want. For example, we might want to call functions
|
||||||
|
# (e.g. raw_input()) that implicitly read from whatever stream is
|
||||||
|
# assigned to sys.stdin. Since we want them to work with the
|
||||||
|
# original input stream, we are making the following assignment:
|
||||||
|
sys.stdin = input_stream
|
||||||
|
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
if not fake:
|
if not fake:
|
||||||
if not skip_patch:
|
if not skip_patch:
|
||||||
|
Loading…
Reference in New Issue
Block a user