-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15319/#review28452
-----------------------------------------------------------


I think these are the semantics one would expect, since I would expect these 
two operations to behave the same:

Future<T> f = p->foo();
f.discard(); // Discards the future returned by foo().

Future<T> f = dispatch(p, P::foo);
f.discard(); // Currently, this will not discard the future returned by
             // foo(), only discards the dispatch promise's future. Seems weird 
to me.


3rdparty/libprocess/include/process/dispatch.hpp
<https://reviews.apache.org/r/15319/#comment55260>

    Can you add a NOTE that the outer Future's discard() may return true 
despite the associated Future's discard() returning false?


- Ben Mahler


On Nov. 7, 2013, 7:41 p.m., Jie Yu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15319/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2013, 7:41 p.m.)
> 
> 
> Review request for mesos, Benjamin Hindman, Ben Mahler, and Vinod Kone.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> Say you have a process defined as follows:
> 
> class FooProcess : public Process<FooProcess>
> {
> public:
>   Future<bool> func() { return future; }
> private:
>   Future<bool> future;
> };
> 
> Then you call dispatch that returns a future:
> 
> Future<bool> f = dispatch(process, &FooProcess::func);
> 
> If the user discards the future 'f', we expect the 'future' field in 
> FooProcess also being discarded. However, this is not the case currently.
> 
> This patch fixed this issue.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/include/process/dispatch.hpp b337a87 
>   3rdparty/libprocess/src/tests/process_tests.cpp 7848599 
> 
> Diff: https://reviews.apache.org/r/15319/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> Also:
> 3rdparty/libprocess/tests --gtest_repeat=1000
> 
> 
> Thanks,
> 
> Jie Yu
> 
>

Reply via email to