code: def join(self, timeout: float | None = None) -> None:
      super(_TestableThread, self).join(timeout)
      if self.exc:
          raise self.exc
  
file_path: optuna/optuna/testing/threading.py
imports: from __future__ import annotations
  import threading
  from typing import Any
  from typing import Callable
label_desc: Use image node_id 3 for calling the _TestableThread obj's underlying member method code with example usage: obj.join(timeout) without return types