use AsyncTask for last_stop handling instead of shared

This commit is contained in:
Manuel Schmid 2023-11-18 17:20:41 +01:00
parent d3f9156854
commit 617255d040
No known key found for this signature in database
GPG Key ID: 32C4F7569B40B84B
3 changed files with 7 additions and 6 deletions

View File

@ -6,6 +6,7 @@ class AsyncTask:
self.args = args
self.yields = []
self.results = []
self.last_stop = False
async_tasks = []
@ -722,7 +723,7 @@ def worker():
yield_result(async_task, imgs, do_not_show_finished_images=len(tasks) == 1)
except fcbh.model_management.InterruptProcessingException as e:
if shared.last_stop == 'skip':
if async_task.last_stop == 'skip':
print('User skipped')
continue
else:

View File

@ -1,2 +1 @@
gradio_root = None
last_stop = None
gradio_root = None

View File

@ -20,12 +20,13 @@ from modules.private_logger import get_current_html_path
from modules.ui_gradio_extensions import reload_javascript
from modules.auth import auth_enabled, check_auth
currentTask = gr.State()
def generate_clicked(*args):
# outputs=[progress_html, progress_window, progress_gallery, gallery]
execution_start_time = time.perf_counter()
task = worker.AsyncTask(args=list(args))
currentTask.value = task = worker.AsyncTask(args=list(args))
finished = False
yield gr.update(visible=True, value=modules.html.make_progress_html(1, 'Waiting for task to start ...')), \
@ -117,13 +118,13 @@ with shared.gradio_root:
def stop_clicked():
import fcbh.model_management as model_management
shared.last_stop = 'stop'
currentTask.value.last_stop = 'stop'
model_management.interrupt_current_processing()
return [gr.update(interactive=False)] * 2
def skip_clicked():
import fcbh.model_management as model_management
shared.last_stop = 'skip'
currentTask.value.last_stop = 'skip'
model_management.interrupt_current_processing()
return