Eliminated some copying in the master's Accept call handler path.

This eliminates two copies of the `Accept` message.

Review: https://reviews.apache.org/r/65967


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/8de98cfe
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/8de98cfe
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/8de98cfe

Branch: refs/heads/master
Commit: 8de98cfeb60dc36cb68d8d712e4e45376d9c0d1e
Parents: 2e716fa
Author: Benjamin Mahler <[email protected]>
Authored: Wed Mar 7 19:40:58 2018 -0800
Committer: Benjamin Mahler <[email protected]>
Committed: Fri Mar 9 12:36:13 2018 -0800

----------------------------------------------------------------------
 src/master/http.cpp   |  2 +-
 src/master/master.cpp | 10 +++++-----
 src/master/master.hpp |  4 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/8de98cfe/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index acf10a0..a38866d 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -1096,7 +1096,7 @@ Future<Response> Master::Http::scheduler(
       return Accepted();
 
     case scheduler::Call::ACCEPT:
-      master->accept(framework, call.accept());
+      master->accept(framework, std::move(*call.mutable_accept()));
       return Accepted();
 
     case scheduler::Call::DECLINE:

http://git-wip-us.apache.org/repos/asf/mesos/blob/8de98cfe/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index b031c19..b368598 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -2380,7 +2380,7 @@ void Master::receive(
       break;
 
     case scheduler::Call::ACCEPT:
-      accept(framework, call.accept());
+      accept(framework, std::move(*call.mutable_accept()));
       break;
 
     case scheduler::Call::DECLINE:
@@ -3457,7 +3457,7 @@ void Master::launchTasks(
     *operation->mutable_launch()->mutable_task_infos() =
       std::move(*launchTasksMessage.mutable_tasks());
 
-    accept(framework, message);
+    accept(framework, std::move(message));
   } else {
     scheduler::Call::Decline message;
 
@@ -3878,7 +3878,7 @@ void Master::addTask(
 
 void Master::accept(
     Framework* framework,
-    scheduler::Call::Accept accept)
+    scheduler::Call::Accept&& accept)
 {
   CHECK_NOTNULL(framework);
 
@@ -4360,7 +4360,7 @@ void Master::accept(
                  framework->id(),
                  slaveId.get(),
                  offeredResources,
-                 accept,
+                 std::move(accept),
                  lambda::_1));
 }
 
@@ -4369,7 +4369,7 @@ void Master::_accept(
     const FrameworkID& frameworkId,
     const SlaveID& slaveId,
     const Resources& offeredResources,
-    const scheduler::Call::Accept& accept,
+    scheduler::Call::Accept&& accept,
     const Future<list<Future<bool>>>& _authorizations)
 {
   Framework* framework = getFramework(frameworkId);

http://git-wip-us.apache.org/repos/asf/mesos/blob/8de98cfe/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index 74cd0e4..f85b232 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -1013,13 +1013,13 @@ private:
 
   void accept(
       Framework* framework,
-      scheduler::Call::Accept accept);
+      scheduler::Call::Accept&& accept);
 
   void _accept(
       const FrameworkID& frameworkId,
       const SlaveID& slaveId,
       const Resources& offeredResources,
-      const scheduler::Call::Accept& accept,
+      scheduler::Call::Accept&& accept,
       const process::Future<std::list<process::Future<bool>>>& authorizations);
 
   void acceptInverseOffers(

Reply via email to