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,

Reply via email to