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():
nonlocal remaining
try:
while remaining > 0:
items = result.pop_all()
for idx, token in items:
if token is STOP:
if not finished[idx]:
finished[idx] = True
remaining -= 1
else:
yield (idx, token) if is_batch else token
if remaining > 0:
result.wait(timeout=0.05)
finally:
for tid in task_ids:
self.scheduler.remove_task(tid)
while remaining > 0:
items = result.pop_all()
for idx, token in items:
if token is STOP:
if not finished[idx]:
finished[idx] = True
remaining -= 1
else:
yield (idx, token) if is_batch else token
if remaining > 0:
result.wait(timeout=0.05)
return gen()