swift
740e87b0 - [Concurrency] Fix group child tasks not being released

Commit
4 years ago
[Concurrency] Fix group child tasks not being released The proper handling of task group child tasks is that: - if it completes a waiting task immediately, we don't need to retain it - we just move the value to the waiting task and can destroy the task - if we need to store the ready task and wait for a waiting task (for a task that hits `await group.next()`) then we need to retain the ready task. - as the waiting task arrives, we move the value from the ready task to the waiting task, and swift_release the ready task -- it will now be destroyed safely. (cherry picked from commit d4ebc58754b867dd8ebcdf0a3d283ffa5bbefd12)
Author
Committer
Parents
Loading