> On Nov. 19, 2014, 7:58 p.m., Ben Mahler wrote:
> > 3rdparty/libprocess/include/process/future.hpp, lines 568-572
> > <https://reviews.apache.org/r/28195/diff/1/?file=768159#file768159line568>
> >
> > Should these be CHECKing the appropriate state invariants? Or, at the
> > very least we should have a comment here to describe that these should only
> > be called when the future is transitioned out of pending (or discard is
> > true for the one case), otherwise since these do not acquire the locks!
> >
> > Seems a little unfortunate to make the reasoning around the
> > synchronization invariants less local.
>
> Joris Van Remoortere wrote:
> Hey Ben. I've added asserts to check for the corresponding states within
> the callbacks, and also adjust the comment above the declarations of the
> functions with the expectation.
That's a really good point Ben. Thanks for bringing this up. How about a static
helper:
template <typename C, typename Arguments...>
void run(const std::vector<C>& callbacks, Arguments... arguments) const
{
for (size_t i = 0; i < callbacks.size(); i++) {
callbacks[i](std::forward<Arguments>(arguments)...);
}
}
And then at the onReady callsite:
run(data->onReadyCallbacks, *data->t);
data->onReadyCallbacks.clear();
And then in the future when we have lambdas we can replace 'run' and just do:
map(data->onReadyCallbacks, [=] (const ReadyCallback& callback) {
callback(*data->t); });
data->onReadyCallbacks.clear();
- Benjamin
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28195/#review62213
-----------------------------------------------------------
On Nov. 19, 2014, 10:16 p.m., Joris Van Remoortere wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/28195/
> -----------------------------------------------------------
>
> (Updated Nov. 19, 2014, 10:16 p.m.)
>
>
> Review request for mesos, Benjamin Hindman, Dominic Hamon, Niklas Nielsen,
> and Timothy Chen.
>
>
> Bugs: MESOS-2126
> https://issues.apache.org/jira/browse/MESOS-2126
>
>
> Repository: mesos-git
>
>
> Description
> -------
>
> Factor out callback invocation in Future to make the logic easier to read. It
> also de-duplicates some code.
>
>
> Diffs
> -----
>
> 3rdparty/libprocess/include/process/future.hpp
> 2e4f9efe53e2e9966f23bd516e61fd9d83ed6b33
>
> Diff: https://reviews.apache.org/r/28195/diff/
>
>
> Testing
> -------
>
> make check
>
>
> Thanks,
>
> Joris Van Remoortere
>
>