1 #ifndef FWCore_Utilities_atomic_value_ptr_h 2 #define FWCore_Utilities_atomic_value_ptr_h 63 exchangeWithLocal(local);
71 exchangeWithLocal(local);
92 exchangeWithLocal(local);
104 exchangeWithLocal(local);
108 T*
load()
const {
return myP.load(); }
123 operator bool_type()
const {
135 T* old = myP.exchange(local.
myP.load());
143 template <
typename U>
152 mutable std::atomic<T*>
myP;
161 template <
typename T,
typename U>
167 template <
typename T,
typename U>
173 template <
typename T,
typename U>
179 template <
typename T,
typename U>
186 #endif // FWCoreUtilities_atomic_value_ptr_h atomic_value_ptr(atomic_value_ptr< U > const &orig)
atomic_value_ptr & operator=(atomic_value_ptr< U > const &orig)
void exchangeWithLocal(atomic_value_ptr &local)
atomic_value_ptr & operator=(atomic_value_ptr const &orig)
bool operator==(debugging_allocator< X > const &, debugging_allocator< Y > const &) noexcept
atomic_value_ptr & operator=(std::unique_ptr< T > orig)
void this_type_does_not_support_comparisons() const
atomic_value_ptr & operator=(atomic_value_ptr &&orig)
atomic_value_ptr(atomic_value_ptr const &orig)
bool compare_exchange_strong(T *&oldValue, T *newValue)
bool operator!=(debugging_allocator< X > const &, debugging_allocator< Y > const &) noexcept
static T * createFrom(U const *p)
static T * clone(T const *p)
atomic_value_ptr(std::unique_ptr< T > orig)
atomic_value_ptr(atomic_value_ptr &&orig)