Benjamin Bannier created MESOS-8542:
---------------------------------------

             Summary: libprocess' dispatch and defer and not very symmetric
                 Key: MESOS-8542
                 URL: https://issues.apache.org/jira/browse/MESOS-8542
             Project: Mesos
          Issue Type: Bug
          Components: libprocess
            Reporter: Benjamin Bannier


>From a high level, libprocess {{dispatch}} and {{defer}} perform closely 
>related jobs. They both enqueue some work on a libprocess actor. They differ 
>semantically in that {{dispatch}} enqueues work to be executed after currently 
>enqueued work while {{defer}} effectively performs a {{dispatch}} of a future 
>{{dispatch}}.

While these functions are semantically very close, they often cannot be used in 
each other's place. If e.g., a function expects some function object, {{defer}} 
can be used (since it returns a {{Deferred}} or similar object which can be 
invoked), but one cannot use {{dispatch}} which for most overloads just returns 
{{void}}.

We should rectify this asymmetry to make sure that {{dispatch}} can be used in 
all places where currently {{dispatch}} can be used syntactically. Depending on 
the chosen implementation strategy this might allow us to implement a lot of 
the functionality from {{defer}} with {{dispatch}}.



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

Reply via email to