Source code for flexlate_dev.ext_threading

from threading import Thread


# See https://stackoverflow.com/a/31614591/6276321
[docs]class PropagatingThread(Thread):
[docs] def run(self): self.exc = None self.ret = None try: self.ret = self._target(*self._args, **self._kwargs) # type: ignore except BaseException as e: self.exc = e
[docs] def join(self, timeout=None): super().join(timeout) if self.exc: raise self.exc return self.ret