code: def _run(self):  # pylint: disable=method-hidden
          
          try:
              self.event_stop.wait()
          except gevent.GreenletExit:  # killed without exception
              self.event_stop.set()
              gevent.killall(self.greenlets)  # kill children
              raise  # re-raise to keep killed status
          except Exception:
              self.stop()  # ensure cleanup and wait on subtasks
              raise
docs: Runnable main method, perform wait on long-running subtasks