Commit 0011d8a0 authored by Nicholas Ormrod's avatar Nicholas Ormrod Committed by Alecs King

We might avoid some temporaries in putMessagesImpl

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: default avatarNicholas 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
parent f706bdbd
...@@ -514,9 +514,7 @@ class NotificationQueue { ...@@ -514,9 +514,7 @@ class NotificationQueue {
if (numActiveConsumers_ < numConsumers_) { if (numActiveConsumers_ < numConsumers_) {
signal = true; signal = true;
} }
queue_.push_back( queue_.emplace_back(std::move(message), RequestContext::saveContext());
std::make_pair(std::move(message),
RequestContext::saveContext()));
} }
if (signal) { if (signal) {
signalEvent(); signalEvent();
...@@ -536,7 +534,7 @@ class NotificationQueue { ...@@ -536,7 +534,7 @@ class NotificationQueue {
if (numActiveConsumers_ < numConsumers_) { if (numActiveConsumers_ < numConsumers_) {
signal = true; signal = true;
} }
queue_.push_back(std::make_pair(message, RequestContext::saveContext())); queue_.emplace_back(message, RequestContext::saveContext());
} }
if (signal) { if (signal) {
signalEvent(); signalEvent();
...@@ -554,7 +552,7 @@ class NotificationQueue { ...@@ -554,7 +552,7 @@ class NotificationQueue {
folly::SpinLockGuard g(spinlock_); folly::SpinLockGuard g(spinlock_);
checkDraining(); checkDraining();
while (first != last) { while (first != last) {
queue_.push_back(std::make_pair(*first, RequestContext::saveContext())); queue_.emplace_back(*first, RequestContext::saveContext());
++first; ++first;
++numAdded; ++numAdded;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment