A very simple atomic shared ptr with release-acquire memory order. More...
#include <AtomicSharedPtr.h>
Public Member Functions | |
template<typename... Args> | |
AtomicSharedPtr (Args &&... args) | |
AtomicSharedPtr (const AtomicSharedPtr &rhs) | |
AtomicSharedPtr (AtomicSharedPtr &&)=delete | |
bool | compare_exchange (std::shared_ptr< T > *expected, std::shared_ptr< T > desired) noexcept |
std::shared_ptr< T > | load () const noexcept |
AtomicSharedPtr & | operator= (std::shared_ptr< T > ptr) noexcept |
AtomicSharedPtr & | operator= (const AtomicSharedPtr &rhs) noexcept |
AtomicSharedPtr & | operator= (AtomicSharedPtr &&)=delete |
void | reset (std::shared_ptr< T > ptr=nullptr) noexcept |
void | store (std::shared_ptr< T > ptr) noexcept |
Private Attributes | |
std::shared_ptr< T > | _ptr |
A very simple atomic shared ptr with release-acquire memory order.
Definition at line 15 of file AtomicSharedPtr.h.
|
inlineexplicit |
Definition at line 19 of file AtomicSharedPtr.h.
Referenced by carla::AtomicSharedPtr< const ListT >::AtomicSharedPtr().
|
inline |
Definition at line 22 of file AtomicSharedPtr.h.
|
delete |
|
inlinenoexcept |
Definition at line 39 of file AtomicSharedPtr.h.
|
inlinenoexcept |
Definition at line 35 of file AtomicSharedPtr.h.
Referenced by carla::client::detail::Load(), and carla::client::detail::AtomicList< carla::client::detail::CallbackList::Item >::Load().
|
inlinenoexcept |
Definition at line 48 of file AtomicSharedPtr.h.
Referenced by carla::AtomicSharedPtr< const ListT >::operator=().
|
inlinenoexcept |
Definition at line 53 of file AtomicSharedPtr.h.
|
delete |
|
inlinenoexcept |
Definition at line 31 of file AtomicSharedPtr.h.
|
inlinenoexcept |
Definition at line 27 of file AtomicSharedPtr.h.
Referenced by carla::AtomicSharedPtr< const ListT >::operator=(), and carla::AtomicSharedPtr< const ListT >::reset().
|
private |
Definition at line 62 of file AtomicSharedPtr.h.
Referenced by carla::AtomicSharedPtr< const ListT >::compare_exchange(), carla::AtomicSharedPtr< const ListT >::load(), and carla::AtomicSharedPtr< const ListT >::store().