Repository navigation
futures: keep the result of a stackful run_as_child child run directly - #7819
Conversation
Signed-off-by: v4xsh <[email protected]>
Signed-off-by: v4xsh <[email protected]>
Signed-off-by: v4xsh <[email protected]>
Signed-off-by: v4xsh <[email protected]>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Summary
Merge Risk: ⚪ Minimal · up to
|
Up to standards ✅🟢 Issues
|
|
Can one of the admins verify this patch? |
hkaiser
left a comment
There was a problem hiding this comment.
Thanks, this looks right to me. Keeping the result in a local through reset() matches what operator() already does, and since the scheduling loop releases the leftover queue entry of a child that already ran (#7718), the stackful child can now end terminated just like the stackless one. Dropping the deleted rewrite is safe, it could never trigger before and would now only diverge from the stackless path.
The failing "Linux CI (Debug) with HWLoc fetch" and CodeQL jobs fail at the CMake generate step on the fetched hwloc, which #7821 fixed on master since; they are unrelated.
One effect listed in #7713 remains: a child run directly is still not counted in /threads/count/cumulative, since neither execute_thread nor the scheduling loop (which releases its queue entry without counting it) counts it. That's the open "where should such a thread be counted" question from the issue, so it's fine to leave it for a follow-up.
Restore the release notes update that was lost when release-2.0.X was rebuilt on master eaff5b9, and describe the PRs merged since the previous rebuild (#6514, #7767, #7816, #7817, #7819, #7821, #7824, #7831). Regenerate the closed issue and pull request lists for release-2.0.X at 4cb902e against the v1.11.0 tag (775 PRs, 167 issues). Signed-off-by: Hartmut Kaiser <[email protected]>
Fixes #7713
Proposed Changes
invoke_directlysoreset()doesn't turn it intounknown. A stackful child run directly now endsterminated, like stackless after futures: run stackless run_as_child children directly #7718.deletedrewrite in stackfulcall_directly. It was the only producer ofdeletedand never fired.execute_thread, thefuture_dataassert and thetask_completedhook accept onlyterminated.Any background context you want to provide?
The places that still read
deletedare left as is to keep this small.The regression test fails on master and passes with the fix at 1 and 4 workers, with no backend, ITT and Tracy (Debug).
Checklist
Not all points below apply to all pull requests.