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

Consider introducing executor_traits::async_progress_category #169

Open
jaredhoberock opened this issue Mar 23, 2016 · 0 comments
Open

Consider introducing executor_traits::async_progress_category #169

jaredhoberock opened this issue Mar 23, 2016 · 0 comments

Comments

@jaredhoberock
Copy link
Collaborator

This type would characterize the progress guarantees of the asynchronous operations async_execute() and then_execute() with respect to the caller of these operations.

P0072 provides a good first draft at what these would look like. We might consider tweaking the names slightly:

struct weakly_parallel_progress_tag {};
struct parallel_progress_tag : weakly_parallel_progress_tag {};
struct concurrent_progress_tag : parallel_progress_tag {};

The inheritance relationships also describe the relative strength of these guarantees.

The default progress category would need to be the weakest guarantee. We should make sure that this correctly categorizes the default implementation of executor_traits::async_execute(), which is equivalent to std::async(std::launch::deferred, ...).

Correctly optimizing the implementation of executor_array::then_execute() depends on the ability to introspect this progress guarantee.

@jaredhoberock jaredhoberock added this to the Release0.X milestone Aug 17, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant