You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Benjamin Bannier (JIRA)" <ji...@apache.org> on 2018/02/05 17:42:00 UTC

[jira] [Created] (MESOS-8542) libprocess' dispatch and defer and not very symmetric

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)