-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/60003/
-----------------------------------------------------------
(Updated July 31, 2017, 8:31 p.m.)
Review request for mesos, Benjamin Hindman, haosdent huang, James Peach, and
Michael Park.
Changes
-------
Addressed review comments.
Added benchmark.
Before changes:
Movable elapsed: 7.763873472secs
Copyable elapsed: 8.20426283secs
After changes:
Movable elapsed: 4.749548906secs
Copyable elapsed: 6.266501858secs
Bugs: MESOS-7713
https://issues.apache.org/jira/browse/MESOS-7713
Repository: mesos
Description
-------
This reduces number of copies made for each parameter in a code like this:
future.then(defer(pid, &SomeProcess::someMethod, param1, param2));
For the objects that do not support move semantics (e.g. protobuf messages),
number of copies is reduced from 8-10 to 6. If move semantics is supported,
then number of copies is reduced from 6-7 to 1 if parameter is passed with
std::move, or 2 otherwise.
Diffs (updated)
-----
3rdparty/libprocess/include/process/defer.hpp
7f3369e723cb244e97930621cbba89cf7873567d
3rdparty/libprocess/include/process/deferred.hpp
e446621be11ac51f5f91c417cc8975e363c2f715
3rdparty/libprocess/include/process/dispatch.hpp
3a0793888dc0df5e3ec31b06f47cd920c71e0db9
3rdparty/libprocess/include/process/future.hpp
cce950509f58022e79bb51a6e72ea1a005b9cb50
3rdparty/libprocess/include/process/http.hpp
f637999174d92a98208b5fc49a65f9929efb11a0
3rdparty/libprocess/src/tests/benchmarks.cpp
694a842e8e18d82ac551749a71764825ba7cb3a9
Diff: https://reviews.apache.org/r/60003/diff/3/
Changes: https://reviews.apache.org/r/60003/diff/2-3/
Testing
-------
make check
Number of copies was checked by using defer to subscribe process for Future
callbacks, and passing parameters that count number of copies made.
Thanks,
Dmitry Zhuk