From 92e9764f585718a257d15866ea91c8ede277f1a7 Mon Sep 17 00:00:00 2001 From: Thomas Nagy Date: Mon, 27 May 2019 18:05:02 +0200 Subject: [PATCH] Optimize sub process startup with workers --- waflib/Utils.py | 2 +- waflib/processor.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/waflib/Utils.py b/waflib/Utils.py index 0a069b12..65cb32ef 100644 --- a/waflib/Utils.py +++ b/waflib/Utils.py @@ -885,7 +885,7 @@ def get_process(): except IndexError: filepath = os.path.dirname(os.path.abspath(__file__)) + os.sep + 'processor.py' cmd = [sys.executable, '-c', readf(filepath)] - return subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, bufsize=0) + return subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, bufsize=0, close_fds=True) def run_prefork_process(cmd, kwargs, cargs): """ diff --git a/waflib/processor.py b/waflib/processor.py index 2eecf3bd..eff2e69a 100755 --- a/waflib/processor.py +++ b/waflib/processor.py @@ -27,6 +27,10 @@ def run(): [cmd, kwargs, cargs] = cPickle.loads(base64.b64decode(txt)) cargs = cargs or {} + if not 'close_fds' in kwargs: + # workers have no fds + kwargs['close_fds'] = False + ret = 1 out, err, ex, trace = (None, None, None, None) try: