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
Fixing return type calculation for bulk_then_execute. #3205
Conversation
Thanks @hkaiser, this works as intended (below is likely unrelated). Out of curiousity, HPX futures don't seem to wait in the destructors if get/wait was not called earlier. This seems to be a contentious topic for the standards, but is there a reason for HPX choosing to go this way? (I'm asking because I wanted to see what the thread pool executors do now if one does not get the future before destroying the executor -- currently it hangs, but I have not investigated further). |
Yes, HPX futures don't wait on destruction if the value was not extracted. Please note that even the standard prescribes this only for futures that have been returned from We have deliberately diverged from this for two reasons: a) in HPX we can't have runways threads as the runtime waits for all threads to terminate eventually before exiting, also there is always a way for us to access still running threads, if needed, and b) (probably more important) we wanted for all futures to be equal in semantics, no matter how they were created (through |
- flyby: added util::functional::unwrap[_n|_all] - some restructuring required by circular #include dependencies
@msimberg Thanks a lot! |
So this seems to have broken the I think the test itself may not be correct though. From the docs: " |
Fixes #3182
Unfortunately this PR contains a lot of unrelated changes that were necessary in order to disentangle a couple of circular #include dependencies that were introduced by the initial fix to the original problem.