diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-08-15 17:22:36 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-08-15 17:22:36 -0700 |
commit | 9f6ad12cbbea42c06b92d08e336ce5c7091a9227 (patch) | |
tree | 9af66937402d54d0e638d001c3d46b758f454163 /pym/_emerge/PollScheduler.py | |
parent | 2e81650c86d619008e9db0b1a649c1c5dff14480 (diff) | |
download | portage-9f6ad12cbbea42c06b92d08e336ce5c7091a9227.tar.gz portage-9f6ad12cbbea42c06b92d08e336ce5c7091a9227.tar.bz2 portage-9f6ad12cbbea42c06b92d08e336ce5c7091a9227.zip |
Remove PollScheduler._schedule_waitpid() since this case isn't triggered
anymore, now that PollScheduler._unregister() has be fixed to discard
unhandled events (so that reallocation of file descriptors no longer
triggers erroneous delivery of stale events).
Diffstat (limited to 'pym/_emerge/PollScheduler.py')
-rw-r--r-- | pym/_emerge/PollScheduler.py | 29 |
1 files changed, 1 insertions, 28 deletions
diff --git a/pym/_emerge/PollScheduler.py b/pym/_emerge/PollScheduler.py index ce971282f..2a77f869e 100644 --- a/pym/_emerge/PollScheduler.py +++ b/pym/_emerge/PollScheduler.py @@ -16,7 +16,7 @@ from _emerge.PollSelectAdapter import PollSelectAdapter class PollScheduler(object): class _sched_iface_class(SlotObject): - __slots__ = ("register", "schedule", "schedule_waitpid", "unregister") + __slots__ = ("register", "schedule", "unregister") def __init__(self): self._max_jobs = 1 @@ -228,33 +228,6 @@ class PollScheduler(object): return event_handled - def _schedule_waitpid(self, pid): - """ - Schedule until waitpid returns process status - for the given pid, and return the result from waitpid. - This is meant to be called as a last resort, since - it won't return until the process exits. This can raise - OSError from the waitpid call (typically errno.ECHILD). - @type pid: int - @param pid: the pid of the child process to wait for - """ - event_handlers = self._poll_event_handlers - - try: - while event_handlers: - f, event = self._next_poll_event() - handler, reg_id = event_handlers[f] - handler(f, event) - wait_retval = os.waitpid(pid, os.WNOHANG) - if wait_retval != (0, 0): - return wait_retval - self._schedule() - except StopIteration: - pass - - # Once scheduling is exhaused, do a blocking waitpid. - return os.waitpid(pid, 0) - _can_poll_device = None def can_poll_device(): |