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:
2026-08-08 13:12:40 +08:00
parent ae9fd546ef
commit 0b661bae85
+11 -15
View File
@@ -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()