fix: remove blocking cleanup from streaming generator
- stream finally froze main thread on cache.task_free - scheduler handles cleanup in next loop iteration instead
This commit is contained in:
+11
-15
@@ -204,21 +204,17 @@ class InferenceEngine:
|
|||||||
|
|
||||||
def gen():
|
def gen():
|
||||||
nonlocal remaining
|
nonlocal remaining
|
||||||
try:
|
while remaining > 0:
|
||||||
while remaining > 0:
|
items = result.pop_all()
|
||||||
items = result.pop_all()
|
for idx, token in items:
|
||||||
for idx, token in items:
|
if token is STOP:
|
||||||
if token is STOP:
|
if not finished[idx]:
|
||||||
if not finished[idx]:
|
finished[idx] = True
|
||||||
finished[idx] = True
|
remaining -= 1
|
||||||
remaining -= 1
|
else:
|
||||||
else:
|
yield (idx, token) if is_batch else token
|
||||||
yield (idx, token) if is_batch else token
|
if remaining > 0:
|
||||||
if remaining > 0:
|
result.wait(timeout=0.05)
|
||||||
result.wait(timeout=0.05)
|
|
||||||
finally:
|
|
||||||
for tid in task_ids:
|
|
||||||
self.scheduler.remove_task(tid)
|
|
||||||
|
|
||||||
return gen()
|
return gen()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user