-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57358/
-----------------------------------------------------------
(Updated March 21, 2017, 2:40 p.m.)
Review request for mesos, Benjamin Mahler and Greg Mann.
Changes
-------
Changed implementation of discard to do a (potentially) expensive queue cleanup
upon discard.
Bugs: MESOS-6919
https://issues.apache.org/jira/browse/MESOS-6919
Repository: mesos
Description (updated)
-------
When a consumer calls `Queue::get` on an empty Queue, the Queue creates
a Promise to back the Future return value. This Promise currently
does not have a discard handler, which may cause problems if the
Future is chained to multiple continuations. For example, see
the scenario in MESOS-6919.
This commit implements an (potentially expensive) discard handler
on the Queue's Promise. If the Future return value is discarded,
the Queue will remove the corresponding Promise from its internal
queue of promises. The operation is expensive because it needs
to reconstruct the entire internal queue of promises.
Diffs (updated)
-----
3rdparty/libprocess/include/process/queue.hpp
ab08e30df742412f22a06202526f8b55350ed435
3rdparty/libprocess/src/tests/queue_tests.cpp
95b738133fa50641f8f9b83014837d2808e0e4ff
Diff: https://reviews.apache.org/r/57358/diff/4/
Changes: https://reviews.apache.org/r/57358/diff/3-4/
Testing
-------
cmake .. -DENABLE_LIBEVENT=1 -DENABLE_SSL=1
make libprocess-tests
3rdparty/libprocess/src/tests/libprocess-tests
--gtest_filter="Scheme/HTTPTest.Endpoints/0" --gtest_repeat="`ulimit -n`"
make check
Thanks,
Joseph Wu