def run(self):
        numpy.random.seed(self._seed)
        random.seed(numpy.random.randint(2**31))

        try:
            class DeathRequestedError(Exception):
                pass

            try:
                def handle_sigusr1(number, frame):
                    raise DeathRequestedError()

                try:
                    signal.signal(signal.SIGUSR1, handle_sigusr1)

                    self.handle_subsolver()
                finally:
                    signal.signal(signal.SIGUSR1, signal.SIG_IGN)
            except DeathRequestedError:
                pass
            except Exception, error:
                self._stm_queue.put(error)
        except __HOLE__:
            pass
        finally:
            if self._popened is not None:
                self._popened.kill()

                os.kill(self._popened.pid, signal.SIGCONT)

                self._popened.wait()

            shutil.rmtree(self._tmpdir, ignore_errors = True)
dataset/ETHPy150Open borg-project/borg/borg/solver_io.py/SolverProcess.run