From f089aa264d1da5546e106121868f34397ddbc690 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 11 Aug 2024 18:45:40 -0700 Subject: [PATCH] fix: cancel first before deleting task --- src/AutoGGUF.py | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/AutoGGUF.py b/src/AutoGGUF.py index 04f2b47..acde7e5 100644 --- a/src/AutoGGUF.py +++ b/src/AutoGGUF.py @@ -1355,17 +1355,25 @@ def toggle_gpu_offload_auto(self, state): self.gpu_offload_slider.setEnabled(not is_auto) self.gpu_offload_spinbox.setEnabled(not is_auto) - def cancel_task(self, item): - self.logger.info(CANCELLING_TASK.format(item.text())) + def cancel_task_by_item(self, item): task_item = self.task_list.itemWidget(item) for thread in self.quant_threads: if thread.log_file == task_item.log_file: thread.terminate() task_item.update_status(CANCELED) + self.quant_threads.remove(thread) break + def cancel_task(self, item): + self.logger.info(CANCELLING_TASK.format(item.text())) + self.cancel_task_by_item(item) + def delete_task(self, item): self.logger.info(DELETING_TASK.format(item.text())) + + # Cancel the task first + self.cancel_task_by_item(item) + reply = QMessageBox.question( self, CONFIRM_DELETION_TITLE, @@ -1374,22 +1382,10 @@ def delete_task(self, item): QMessageBox.StandardButton.No, ) if reply == QMessageBox.StandardButton.Yes: - # Retrieve the task_item before removing it from the list task_item = self.task_list.itemWidget(item) - - # Remove the item from the list row = self.task_list.row(item) self.task_list.takeItem(row) - # If the task is still running, terminate it - if task_item and task_item.log_file: - for thread in self.quant_threads: - if thread.log_file == task_item.log_file: - thread.terminate() - self.quant_threads.remove(thread) - break - - # Delete the task_item widget if task_item: task_item.deleteLater()