We might avoid some temporaries in putMessagesImpl
authorNicholas Ormrod <njormrod@fb.com>
Thu, 16 Apr 2015 20:42:45 +0000 (13:42 -0700)
committerAlecs King <int@fb.com>
Mon, 27 Apr 2015 23:43:20 +0000 (16:43 -0700)
Summary:
This is folly github pull request https://github.com/facebook/folly/pull/184

It seems we might avoid some temporaries in putMessagesImpl
function. To do so we pass arguments directly to constructors
with the help of emplace_back member.

Test Plan:
All folly/tests, make check for 37 tests, passed.

Signed-off-by: Nicholas Ormrod <njormrod@fb.com>
Reviewed By: davejwatson@fb.com

Subscribers: folly-diffs@, yfeldblum, chalfant

FB internal diff: D1998515

Tasks: 6783581

Signature: t1:1998515:1429207683:056db129405bed212f50a50821f095c8d3694ec8

folly/io/async/NotificationQueue.h

index 95c85160d6403e0353f9d81b3acb9ee15ea6fa95..cbbed8c417eae4daf55f56fdcd00e528c28bace5 100644 (file)
@@ -514,9 +514,7 @@ class NotificationQueue {
       if (numActiveConsumers_ < numConsumers_) {
         signal = true;
       }
-      queue_.push_back(
-        std::make_pair(std::move(message),
-                       RequestContext::saveContext()));
+      queue_.emplace_back(std::move(message), RequestContext::saveContext());
     }
     if (signal) {
       signalEvent();
@@ -536,7 +534,7 @@ class NotificationQueue {
       if (numActiveConsumers_ < numConsumers_) {
         signal = true;
       }
-      queue_.push_back(std::make_pair(message, RequestContext::saveContext()));
+      queue_.emplace_back(message, RequestContext::saveContext());
     }
     if (signal) {
       signalEvent();
@@ -554,7 +552,7 @@ class NotificationQueue {
       folly::SpinLockGuard g(spinlock_);
       checkDraining();
       while (first != last) {
-        queue_.push_back(std::make_pair(*first, RequestContext::saveContext()));
+        queue_.emplace_back(*first, RequestContext::saveContext());
         ++first;
         ++numAdded;
       }