Skip to content

Commit 0c3c35c

Browse files
committed
- stop using add_done_callback so we can avoid mutation bugs
1 parent 68041ce commit 0c3c35c

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

runpod/serverless/modules/rp_scale.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,11 +229,17 @@ async def run_jobs(self, session: ClientSession):
229229
# Create a new task for each job and add it to the task list
230230
task = asyncio.create_task(self.handle_job(session, job))
231231
tasks.add(task)
232-
task.add_done_callback(tasks.discard)
233232

234233
# 2. If jobs are running, wait a little for completions
235234
if tasks:
236-
await asyncio.wait(tasks, timeout=0.1, return_when=asyncio.FIRST_COMPLETED)
235+
# Wait for at least one task to finish
236+
done, pending = await asyncio.wait(
237+
tasks,
238+
timeout=0.1,
239+
return_when=asyncio.FIRST_COMPLETED,
240+
)
241+
# Remove completed tasks
242+
tasks.difference_update(done)
237243
else:
238244
# Nothing running — don’t spin CPU
239245
await asyncio.sleep(0.5)

0 commit comments

Comments
 (0)