def METHOD_NAME(self, timeout):
    while self.alive:
        self.notify()
        try:
            ready = self.wait(timeout)
        except StopWaiting:
            return
        if ready is not None:
            for listener in ready:
                if listener == self.PIPE[0]:
                    continue
                try:
                    self.accept(listener)
                except EnvironmentError as e:
                    if e.errno not in (errno.EAGAIN, errno.ECONNABORTED,
                                       errno.EWOULDBLOCK):
                        raise
        if not self.is_parent_alive():
            return