Avoid copying acknowledgement message data in the master. This updates the acknowledge call handler to take an rvalue reference for consistency. This also updates the handler to move the data into the outgoing message.
Review: https://reviews.apache.org/r/65970 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/ff85aeb9 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/ff85aeb9 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/ff85aeb9 Branch: refs/heads/master Commit: ff85aeb9ddb89305f7b764d8891aa45fd9df9cf6 Parents: 3515ba9 Author: Benjamin Mahler <[email protected]> Authored: Wed Mar 7 20:03:24 2018 -0800 Committer: Benjamin Mahler <[email protected]> Committed: Fri Mar 9 12:36:14 2018 -0800 ---------------------------------------------------------------------- src/master/http.cpp | 2 +- src/master/master.cpp | 14 +++++++------- src/master/master.hpp | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/ff85aeb9/src/master/http.cpp ---------------------------------------------------------------------- diff --git a/src/master/http.cpp b/src/master/http.cpp index 0f05e92..0bca8bd 100644 --- a/src/master/http.cpp +++ b/src/master/http.cpp @@ -1128,7 +1128,7 @@ Future<Response> Master::Http::scheduler( return Accepted(); case scheduler::Call::ACKNOWLEDGE: - master->acknowledge(framework, call.acknowledge()); + master->acknowledge(framework, std::move(*call.mutable_acknowledge())); return Accepted(); // TODO(greggomann): Implement operation status acknowledgement. http://git-wip-us.apache.org/repos/asf/mesos/blob/ff85aeb9/src/master/master.cpp ---------------------------------------------------------------------- diff --git a/src/master/master.cpp b/src/master/master.cpp index 79d7f88..221c215 100644 --- a/src/master/master.cpp +++ b/src/master/master.cpp @@ -2404,7 +2404,7 @@ void Master::receive( break; case scheduler::Call::ACKNOWLEDGE: { - acknowledge(framework, call.acknowledge()); + acknowledge(framework, std::move(*call.mutable_acknowledge())); break; } @@ -5777,13 +5777,13 @@ void Master::statusUpdateAcknowledgement( *message.mutable_uuid() = std::move(*statusUpdateAcknowledgementMessage.mutable_uuid()); - acknowledge(framework, message); + acknowledge(framework, std::move(message)); } void Master::acknowledge( Framework* framework, - const scheduler::Call::Acknowledge& acknowledge) + scheduler::Call::Acknowledge&& acknowledge) { CHECK_NOTNULL(framework); @@ -5855,10 +5855,10 @@ void Master::acknowledge( } StatusUpdateAcknowledgementMessage message; - message.mutable_slave_id()->CopyFrom(slaveId); - message.mutable_framework_id()->CopyFrom(framework->id()); - message.mutable_task_id()->CopyFrom(taskId); - message.set_uuid(uuid.toBytes()); + *message.mutable_slave_id() = std::move(*acknowledge.mutable_slave_id()); + *message.mutable_framework_id() = framework->id(); + *message.mutable_task_id() = std::move(*acknowledge.mutable_task_id()); + *message.mutable_uuid() = std::move(*acknowledge.mutable_uuid()); send(slave->pid, message); http://git-wip-us.apache.org/repos/asf/mesos/blob/ff85aeb9/src/master/master.hpp ---------------------------------------------------------------------- diff --git a/src/master/master.hpp b/src/master/master.hpp index c2305a1..ba06266 100644 --- a/src/master/master.hpp +++ b/src/master/master.hpp @@ -1045,7 +1045,7 @@ private: void acknowledge( Framework* framework, - const scheduler::Call::Acknowledge& acknowledge); + scheduler::Call::Acknowledge&& acknowledge); void acknowledgeOperationStatus( Framework* framework,
