summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/PipeReader.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/_emerge/PipeReader.py')
-rw-r--r--pym/_emerge/PipeReader.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/pym/_emerge/PipeReader.py b/pym/_emerge/PipeReader.py
index 7209e9e93..bb4e0dc1c 100644
--- a/pym/_emerge/PipeReader.py
+++ b/pym/_emerge/PipeReader.py
@@ -1,4 +1,4 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from portage import os
@@ -26,9 +26,17 @@ class PipeReader(AbstractPollTask):
else:
output_handler = self._output_handler
+ fcntl_flags = os.O_NONBLOCK
+ try:
+ fcntl.FD_CLOEXEC
+ except AttributeError:
+ pass
+ else:
+ fcntl_flags |= fcntl.FD_CLOEXEC
+
for f in self.input_files.values():
fcntl.fcntl(f.fileno(), fcntl.F_SETFL,
- fcntl.fcntl(f.fileno(), fcntl.F_GETFL) | os.O_NONBLOCK)
+ fcntl.fcntl(f.fileno(), fcntl.F_GETFL) | fcntl_flags)
self._reg_ids.add(self.scheduler.io_add_watch(f.fileno(),
self._registered_events, output_handler))
self._registered = True