proxygen
|
#include <CoreCachedSharedPtr.h>
Public Member Functions | |
CoreCachedSharedPtr (const std::shared_ptr< T > &p=nullptr) | |
void | reset (const std::shared_ptr< T > &p=nullptr) |
std::shared_ptr< T > | get () const |
Private Types | |
using | Holder = std::shared_ptr< T > |
Private Attributes | |
std::array< std::shared_ptr< T >, kNumSlots > | slots_ |
Friends | |
template<class , size_t > | |
class | CoreCachedWeakPtr |
This class creates core-local caches for a given shared_ptr, to mitigate contention when acquiring/releasing it.
It has the same thread-safety guarantees as shared_ptr: it is safe to concurrently call get(), but reset()s must be synchronized with reads and other resets().
Definition at line 40 of file CoreCachedSharedPtr.h.
|
private |
Definition at line 62 of file CoreCachedSharedPtr.h.
|
inlineexplicit |
Definition at line 42 of file CoreCachedSharedPtr.h.
References folly::CoreCachedSharedPtr< T, kNumSlots >::reset().
|
inline |
Definition at line 57 of file CoreCachedSharedPtr.h.
References folly::AccessSpreader< Atom >::current(), and folly::CoreCachedSharedPtr< T, kNumSlots >::slots_.
|
inline |
Definition at line 46 of file CoreCachedSharedPtr.h.
References folly::enumerate(), and folly::CoreCachedSharedPtr< T, kNumSlots >::slots_.
Referenced by folly::AtomicCoreCachedSharedPtr< T, kNumSlots >::AtomicCoreCachedSharedPtr(), and folly::CoreCachedSharedPtr< T, kNumSlots >::CoreCachedSharedPtr().
|
friend |
Definition at line 65 of file CoreCachedSharedPtr.h.
|
private |
Definition at line 67 of file CoreCachedSharedPtr.h.
Referenced by folly::CoreCachedWeakPtr< T, kNumSlots >::CoreCachedWeakPtr(), folly::CoreCachedSharedPtr< T, kNumSlots >::get(), folly::CoreCachedWeakPtr< T, kNumSlots >::get(), folly::AtomicCoreCachedSharedPtr< T, kNumSlots >::get(), folly::CoreCachedSharedPtr< T, kNumSlots >::reset(), folly::AtomicCoreCachedSharedPtr< T, kNumSlots >::reset(), and folly::AtomicCoreCachedSharedPtr< T, kNumSlots >::~AtomicCoreCachedSharedPtr().