[ 
https://issues.apache.org/jira/browse/MESOS-9369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16674215#comment-16674215
 ] 

Benjamin Mahler commented on MESOS-9369:
----------------------------------------

[~bbannier] that sounds good to me as well, but it seems pretty hard to make 
that sweeping change? Do you know how we can safely do it?

Also, of note is that we likely will add some blocking handling to libprocess 
to remove the deadlock potential that blocking on a future entails today. E.g. 
detach the worker thread and replace it with another one, throwing away the 
original worker thread when the blocking completes.

> Avoid blocking `Future::get()` calls
> ------------------------------------
>
>                 Key: MESOS-9369
>                 URL: https://issues.apache.org/jira/browse/MESOS-9369
>             Project: Mesos
>          Issue Type: Improvement
>          Components: libprocess
>            Reporter: Chun-Hung Hsiao
>            Assignee: Chun-Hung Hsiao
>            Priority: Major
>              Labels: libprocess
>
> {{Future::get()}} does a wait if the future is still pending. If this is 
> accidentally called in an actor, the actor will be blocked. We should avoid 
> calling {{Future::get()}} in the code. The plan would be:
>  # Introduce {{Future::value()}}: crash if not READY
>  # Make {{Future::operator*}} and {{Future::operator->}} akin to 
> {{Future::value()}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to