diff --git a/src/libprs500/gui2/jobs.py b/src/libprs500/gui2/jobs.py index 0be82b9ee9..32b6db28fd 100644 --- a/src/libprs500/gui2/jobs.py +++ b/src/libprs500/gui2/jobs.py @@ -155,6 +155,14 @@ class JobManager(QAbstractTableModel): if isinstance(job, DeviceJob): job.terminate() + def terminate_all_jobs(self): + for job in self.running_jobs: + try: + if isinstance(job, DeviceJob): + job.terminate() + self.process_server.kill(job.id) + except: + continue def timerEvent(self, event): if event.timerId() == self.timer_id: diff --git a/src/libprs500/gui2/main.py b/src/libprs500/gui2/main.py index 64092d89f0..a04dd9d54b 100644 --- a/src/libprs500/gui2/main.py +++ b/src/libprs500/gui2/main.py @@ -987,10 +987,12 @@ class Main(MainWindow, Ui_MainWindow): if d.exec_() != QMessageBox.Yes: e.ignore() return + + self.job_manager.terminate_all_jobs() self.write_settings() self.detector.keep_going = False self.hide() - self.detector.wait(2000) + time.sleep(2) self.detector.terminate() e.accept()