while self._exit_listener_stack:
self._exit_listener_stack.pop()(self)
-class PollTask(AsynchronousTask):
+class AbstractPollTask(AsynchronousTask):
__slots__ = ("scheduler",) + \
("_registered",)
_registered_events = PollConstants.POLLIN | PollConstants.POLLHUP | \
_exceptional_events
+ def _unregister(self):
+ raise NotImplementedError(self)
+
def _unregister_if_appropriate(self, event):
if self._registered:
if event & self._exceptional_events:
self._unregister()
self.wait()
-class PipeReader(PollTask):
+class PipeReader(AbstractPollTask):
"""
Reads output from one or more files and saves it in memory,
self._final_exit(task)
self.wait()
-class SubProcess(PollTask):
+class SubProcess(AbstractPollTask):
__slots__ = ("pid",) + \
("_files", "_reg_id")