> On Nov. 7, 2013, 9:45 p.m., Ben Mahler wrote: > > 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.
To be more clear, I'm just commenting here on why I agree with this change. :) - Ben ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/15319/#review28452 ----------------------------------------------------------- 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 > >
