def run(self): """ Executes target runnable defined in configuration in a separate thread. :return: Runnable result object. :rtype: :py:class: `RunnableResult <testplan.common.entity.base.RunnableResult>` """ try: for sig in self._cfg.abort_signals: signal.signal(sig, self._handle_abort) except ValueError: self.logger.warning( "Not able to install signal handler - signal only works in main thread" ) execute_as_thread( self._runnable.run, daemon=True, join=True, break_join=lambda: self.aborted is True, ) if self._runnable.interactive is not None: return self._runnable.interactive if isinstance(self._runnable.result, Exception): raise self._runnable.result return self._runnable.result
def run(self): """ Executes target runnable defined in configuration in a separate thread. :return: Runnable result object. :rtype: :py:class:`RunnableResult <testplan.common.entity.base.RunnableResult>` """ for sig in self._cfg.abort_signals: signal.signal(sig, self._handle_abort) execute_as_thread(self._runnable.run, daemon=True, join=True, break_join=lambda: self.aborted is True) if isinstance(self._runnable.result, Exception): raise self._runnable.result return self._runnable.result