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
Refactor future implementation #4270
Conversation
e2945a1
to
ef6144c
Compare
b16a8e4
to
ed1ac69
Compare
I'm not sure if this is the right granularity. In comparison with the other modules this one seems to be very large. I think the future type itself belongs into the local_lcos module (with the exception for the |
|
00e2569
to
334301b
Compare
I believe we can break this circular dependency by moving only the basic future to
ok
Please ignore this comment, I did misunderstand what you were doing here. |
Good point. How much of |
39e39eb
to
028a161
Compare
028a161
to
698d85c
Compare
4d77d68
to
c21d84b
Compare
@hkaiser this is still slightly in progress, but I think the general changes required for the future/execution are in place and your feedback on it would be appreciated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice, thanks a lot!
edae5c1
to
172ee82
Compare
0aefb09
to
b1bd8ee
Compare
88918fd
to
ee30804
Compare
It looks like this is working quite well with |
I suggest we go ahead with this as it is. It might still need some cleanup but exactly what to clean up will be more apparent once files get moved to their modules, which would be the next step. |
To eliminate a circular dependency between local_lcos and the execution module. We include now thread_timed_executors inside the global executor include
The goal is to move the template specialization related to the executors into the execution module, the first step is to separate them but keep it in the same file
We move the template specializations related to the executors. Change the future.hpp include to the future_exec.hpp one when necessary.
We remove the dependency to executors and launch_policy.
To move the dependency to executors.
In order to avoid an additional call
It uses a future_serialize, that can send exception, we get errors without this include (the exception cannot be serialized).
I just rebased this :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, let's go ahead with this. There are still some minor questions whether we can further clean up this code, but we can do it over time. Thanks Auriane!
Add the futures files inside the execution module
thread_timed_execution.hpp
back inhpx/parallel/executors
to avoid a circular dependency between theexecution
andlocal_lcos
moduleGoes on top of #4247