diff options
Diffstat (limited to 'portage_with_autodep/pym/_emerge/FifoIpcDaemon.py')
-rw-r--r-- | portage_with_autodep/pym/_emerge/FifoIpcDaemon.py | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/portage_with_autodep/pym/_emerge/FifoIpcDaemon.py b/portage_with_autodep/pym/_emerge/FifoIpcDaemon.py index a716dac..fcc4ab4 100644 --- a/portage_with_autodep/pym/_emerge/FifoIpcDaemon.py +++ b/portage_with_autodep/pym/_emerge/FifoIpcDaemon.py @@ -1,4 +1,4 @@ -# Copyright 2010-2011 Gentoo Foundation +# Copyright 2010-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 from portage import os @@ -15,14 +15,14 @@ class FifoIpcDaemon(AbstractPollTask): def _start(self): self._files = self._files_dict() - input_fd = os.open(self.input_fifo, os.O_RDONLY|os.O_NONBLOCK) # File streams are in unbuffered mode since we do atomic # read and write of whole pickles. - self._files.pipe_in = os.fdopen(input_fd, 'rb', 0) + self._files.pipe_in = \ + os.open(self.input_fifo, os.O_RDONLY|os.O_NONBLOCK) self._reg_id = self.scheduler.register( - self._files.pipe_in.fileno(), + self._files.pipe_in, self._registered_events, self._input_handler) self._registered = True @@ -32,12 +32,12 @@ class FifoIpcDaemon(AbstractPollTask): Re-open the input stream, in order to suppress POLLHUP events (bug #339976). """ - self._files.pipe_in.close() - input_fd = os.open(self.input_fifo, os.O_RDONLY|os.O_NONBLOCK) - self._files.pipe_in = os.fdopen(input_fd, 'rb', 0) self.scheduler.unregister(self._reg_id) + os.close(self._files.pipe_in) + self._files.pipe_in = \ + os.open(self.input_fifo, os.O_RDONLY|os.O_NONBLOCK) self._reg_id = self.scheduler.register( - self._files.pipe_in.fileno(), + self._files.pipe_in, self._registered_events, self._input_handler) def isAlive(self): @@ -51,14 +51,9 @@ class FifoIpcDaemon(AbstractPollTask): def _wait(self): if self.returncode is not None: return self.returncode - - if self._registered: - self.scheduler.schedule(self._reg_id) - self._unregister() - + self._wait_loop() if self.returncode is None: self.returncode = os.EX_OK - return self.returncode def _input_handler(self, fd, event): @@ -77,5 +72,5 @@ class FifoIpcDaemon(AbstractPollTask): if self._files is not None: for f in self._files.values(): - f.close() + os.close(f) self._files = None |