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

passing a future with launch::deferred in remote function call causes hang #1320

Closed
dmarce1 opened this issue Nov 21, 2014 · 3 comments

Comments

Projects
None yet
3 participants
@dmarce1
Copy link
Member

commented Nov 21, 2014

When I try to pass a future with a deferred launch into a call to a remote locality, the system hangs. I presume its because HPX passes futures to remote calls by waiting for the future to become available before making the function call, and because the launch is deferred and future::get is not called on the local end, the remote function is never called? It seems like the behavior should be to go ahead and call get() when the remote call is made on the local end, send the resulting data over the wire, and load it up as a make_ready_future on the remote end.

I have gotten around this problem for myself by writing a wrapper class for hpx::future that calls get() when the serialization save function is called and which makes a make_ready_future with the data when the serialization load function is called.

@K-ballo

This comment has been minimized.

Copy link
Member

commented Nov 21, 2014

Looks like the implementation for passing futures to remote actions has changed and introduced a call to hpx::lcos::wait_all, which doesn't properly handle deferred futures.

@hkaiser

This comment has been minimized.

Copy link
Member

commented Nov 27, 2014

Your use case should have been fixed by 61c6cb5. Please try again.

@hkaiser

This comment has been minimized.

Copy link
Member

commented Dec 3, 2014

@dmarce1: Is that still a problem? Can we close this ticket?

@dmarce1 dmarce1 closed this Jan 8, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.