Conversation
| bash ci/do_ci.sh coverage ; | ||
| - name: Uploaded code coverage | ||
| uses: codecov/codecov-action@v5 | ||
| uses: codecov/codecov-action@v7 |
There was a problem hiding this comment.
🟡 Changes recommended
The workflows reference GitHub Actions major versions that appear to be invalid/nonexistent (e.g., actions/cache@v6, actions/stale@v11, codecov/codecov-action@v7), which would break CI.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
This PR updates coroutine caller management to resume multiple waiters in registration (FIFO) order (instead of hash iteration order), aligning behavior between the C++20 coroutine backend and the stackful channel backend and making wake-up order deterministic.
Changes:
- Replace unordered multi-caller storage with an order-preserving container (list + hash index) for FIFO resume order.
- Add unit tests that assert FIFO wake-up ordering for both task futures and stackful channels.
- Update documentation dependencies and refresh GitHub Actions workflow versions.
File summaries
| File | Description |
|---|---|
| test/case/task_promise_test.cpp | Adds a FIFO-order test for multiple callers awaiting the same task future. |
| test/case/coroutine_context_channel_test.cpp | Adds FIFO-order tests for multiple callers on stackful channel contexts (including dedup and requeue). |
| src/libcopp/coroutine/std_coroutine_common.cpp | Switches promise caller manager multi-caller operations to the FIFO container. |
| src/libcopp/coroutine/stackful_channel.cpp | Switches stackful channel context multi-caller operations to the FIFO container. |
| include/libcopp/coroutine/std_coroutine_common.h | Introduces FIFO multi-caller container (list + unordered_map index) for promise caller manager. |
| include/libcopp/coroutine/stackful_channel.h | Introduces FIFO multi-caller container (list + unordered_map index) for stackful channel context base. |
| docs/requirements.txt | Bumps MkDocs-related documentation dependency minimum versions. |
| CHANGELOG.md | Documents the FIFO wake-up semantic change and dependency updates for 2.3.3. |
| .github/workflows/sync.yml | Updates checkout action major version. |
| .github/workflows/stale.yml | Updates stale action major version (currently to an invalid major). |
| .github/workflows/main.yml | Updates multiple action majors, fixes a cache key expression, but includes invalid action majors. |
Review details
- Files reviewed: 11/11 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| handle_delegate unique_caller_; | ||
| // Mostly, there is only one caller for a promise, we needn't hash map to store one handle | ||
| std::unique_ptr<multi_caller_set> multiple_callers_; | ||
| // Mostly, there is only one caller for a promise, we needn't container to store one handle |
| handle_delegate unique_caller_; | ||
| // Mostly, there is only one caller for a promise, we needn't hash map to store one handle | ||
| std::unique_ptr<multi_caller_set> multiple_callers_; | ||
| // Mostly, there is only one caller for a promise, we needn't container to store one handle |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## v2 #59 +/- ##
==========================================
+ Coverage 89.62% 90.51% +0.89%
==========================================
Files 44 44
Lines 3094 3132 +38
Branches 386 392 +6
==========================================
+ Hits 2773 2835 +62
+ Misses 321 297 -24 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
AI Code Review
AI Code Review SummaryTarget: Dev No summary provided. Problems (1)
Code reference:
|
Fixes #60