aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/call_queue.py2
-rw-r--r--modules/progress.py6
2 files changed, 5 insertions, 3 deletions
diff --git a/modules/call_queue.py b/modules/call_queue.py
index 30ac26bc..9888109e 100644
--- a/modules/call_queue.py
+++ b/modules/call_queue.py
@@ -7,7 +7,7 @@ import time
from modules import shared, progress
queue_lock = threading.Lock()
-
+queue_lock_condition = threading.Condition(lock=queue_lock)
def wrap_queued_call(func):
def f(*args, **kwargs):
diff --git a/modules/progress.py b/modules/progress.py
index 36963c92..1947c0fd 100644
--- a/modules/progress.py
+++ b/modules/progress.py
@@ -6,6 +6,7 @@ import gradio as gr
from pydantic import BaseModel, Field
from typing import List
+from modules import call_queue
from modules.shared import opts
import modules.shared as shared
@@ -57,8 +58,9 @@ def restore_progress_call(task_tag):
else:
t_task = current_task
- while t_task != last_task_id:
- time.sleep(2.5)
+ with call_queue.queue_lock_condition:
+ call_queue.queue_lock_condition.wait_for(lambda: t_task == last_task_id)
+
return last_task_result