code: def join(self, timeout=None):
          
          Thread.join(self, timeout=timeout)
          if self.exc:
              msg = "Thread '%s' threw an exception `%s`: %s" \
                    % (self.getName(), self.exc[0].__name__, self.exc[1])
              new_exc = LaneExecutionError(msg)
  
              if PY3:
                  raise new_exc.with_traceback(self.exc[2])  # pylint: disable=no-member
              else:
                  raise (new_exc.__class__, new_exc, self.exc[2])
docs: Overwrites `threading.Thread.join`, to allow handling of exceptions thrown by threads
          from within the main app.