Commit dcbe5421 authored by Giuseppe Ottaviano's avatar Giuseppe Ottaviano Committed by Facebook GitHub Bot

Use AccessSpreader::cachedCurrent() in CoreCachedSharedPtr

Summary: Avoid an expensive `__vdso_getcpu` on every `get()`.

Reviewed By: terrelln

Differential Revision: D23469601

fbshipit-source-id: 6c7e62a136b7cd80baab6dcfb10cba13a2e472c0
parent 04513e57
......@@ -19,7 +19,6 @@
#include <array>
#include <memory>
#include <folly/concurrency/AtomicSharedPtr.h>
#include <folly/concurrency/CacheLocality.h>
#include <folly/container/Enumerate.h>
#include <folly/synchronization/Hazptr.h>
......@@ -55,7 +54,7 @@ class CoreCachedSharedPtr {
}
std::shared_ptr<T> get() const {
return slots_[AccessSpreader<>::current(kNumSlots)];
return slots_[AccessSpreader<>::cachedCurrent(kNumSlots)];
}
private:
......@@ -77,7 +76,7 @@ class CoreCachedWeakPtr {
}
std::weak_ptr<T> get() const {
return slots_[AccessSpreader<>::current(kNumSlots)];
return slots_[AccessSpreader<>::cachedCurrent(kNumSlots)];
}
private:
......@@ -135,7 +134,7 @@ class AtomicCoreCachedSharedPtr {
if (!slots) {
return nullptr;
}
return (slots->slots_)[AccessSpreader<>::current(kNumSlots)];
return (slots->slots_)[AccessSpreader<>::cachedCurrent(kNumSlots)];
}
private:
......
......@@ -26,6 +26,7 @@
#include <folly/Benchmark.h>
#include <folly/Portability.h>
#include <folly/concurrency/AtomicSharedPtr.h>
#include <folly/concurrency/CoreCachedSharedPtr.h>
#include <folly/portability/GTest.h>
......
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