diff options
author | Zac Medico <zmedico@gentoo.org> | 2013-01-03 22:08:56 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2013-01-03 22:08:56 -0800 |
commit | 9d4fdf7ec5ccd4b78cbce2d7209ce91286fbbf26 (patch) | |
tree | 07282d7f9690be3b6f20856146e210611d2c7ad7 | |
parent | fe1194b25031f40e51d1a82352bb7d79bcafe912 (diff) | |
download | portage-9d4fdf7ec5ccd4b78cbce2d7209ce91286fbbf26.tar.gz portage-9d4fdf7ec5ccd4b78cbce2d7209ce91286fbbf26.tar.bz2 portage-9d4fdf7ec5ccd4b78cbce2d7209ce91286fbbf26.zip |
PipeReader: support plain fd without file obj
-rw-r--r-- | pym/_emerge/PipeReader.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/pym/_emerge/PipeReader.py b/pym/_emerge/PipeReader.py index bb4e0dc1c..be93be323 100644 --- a/pym/_emerge/PipeReader.py +++ b/pym/_emerge/PipeReader.py @@ -35,9 +35,10 @@ class PipeReader(AbstractPollTask): 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) | fcntl_flags) - self._reg_ids.add(self.scheduler.io_add_watch(f.fileno(), + fd = isinstance(f, int) and f or f.fileno() + fcntl.fcntl(fd, fcntl.F_SETFL, + fcntl.fcntl(fd, fcntl.F_GETFL) | fcntl_flags) + self._reg_ids.add(self.scheduler.io_add_watch(fd, self._registered_events, output_handler)) self._registered = True @@ -113,6 +114,9 @@ class PipeReader(AbstractPollTask): if self.input_files is not None: for f in self.input_files.values(): - f.close() + if isinstance(f, int): + os.close(f) + else: + f.close() self.input_files = None |