Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

specify the forward progress guarantee made by run_loop's run member function #18

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions execution.bs
Original file line number Diff line number Diff line change
Expand Up @@ -6841,6 +6841,8 @@ enum class forward_progress_guarantee {

2. <i>Synchronization:</i> This operation synchronizes with all `pop_front` operations on this object.

3. <i>Remarks:</i> If the thread of execution calling `run()` guarantees concurrent or parallel forward progress, then it guarantees parallel forward progress until `run()` returns; otherwise, it guarantees weakly parallel forward progress.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From this comment:

<sigh> I've gotten myself confused again. Since the execution of run() involves blocking for some condition to be satisfied by another thread (work is added to the queue, or another thread calls finish()), and since we can't guarantee that that will ever happen, it's possible that run() will never make progress. So doesn't that mean that the thread of execution calling run() has weakly parallel FP until it returns?

## Coroutine utilities <b>[exec.coro_utils]</b> ## {#spec-execution.coro_utils}

### `execution::as_awaitable` <b>[exec.as_awaitable]</b> ### {#spec-execution.coro_utils.as_awaitable}
Expand Down