class_docstr: Supervisor thread that runs your script.
class_docstr_tok: ["Supervisor","thread","that","runs","your","script","."]
code: def _propagate_exception(self, e: BaseException):
      try:
          # report the error but avoid indefinite blocking which would
          # prevent the exception from being propagated in the unlikely
          # case that something went terribly wrong
          self._error_queue.put(
              e, block=True, timeout=_ERROR_REPORT_TIMEOUT
          )
      except queue.Full:
          logger.critical(
              (
                  "Runner Thread was unable to report error to main "
                  "function runner thread. This means a previous error "
                  "was not processed. This should never happen."
              )
          )
  
imports: import os
  import socket
  from contextlib import closing
  import logging
  import queue
  import threading
  from typing import Optional
  import numpy
  from ray.air.constants import _ERROR_REPORT_TIMEOUT
label_desc: Use image node_id 2 for calling the RunnerThread obj's underlying member method code with example usage: obj._propagate_exception(e) without return types