use condition to wait for result
This commit is contained in:
parent
4242e194e4
commit
e0b58527ff
|
@ -7,7 +7,7 @@ import time
|
||||||
from modules import shared, progress
|
from modules import shared, progress
|
||||||
|
|
||||||
queue_lock = threading.Lock()
|
queue_lock = threading.Lock()
|
||||||
|
queue_lock_condition = threading.Condition(lock=queue_lock)
|
||||||
|
|
||||||
def wrap_queued_call(func):
|
def wrap_queued_call(func):
|
||||||
def f(*args, **kwargs):
|
def f(*args, **kwargs):
|
||||||
|
|
|
@ -6,6 +6,7 @@ import gradio as gr
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
|
from modules import call_queue
|
||||||
from modules.shared import opts
|
from modules.shared import opts
|
||||||
|
|
||||||
import modules.shared as shared
|
import modules.shared as shared
|
||||||
|
@ -57,8 +58,9 @@ def restore_progress_call(task_tag):
|
||||||
else:
|
else:
|
||||||
|
|
||||||
t_task = current_task
|
t_task = current_task
|
||||||
while t_task != last_task_id:
|
with call_queue.queue_lock_condition:
|
||||||
time.sleep(2.5)
|
call_queue.queue_lock_condition.wait_for(lambda: t_task == last_task_id)
|
||||||
|
|
||||||
return last_task_result
|
return last_task_result
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue