10#if FASTLED_MULTITHREADED || defined(FL_IS_ESP32)
11#define FASTLED_USE_REAL_ATOMICS 1
12#include "platforms/atomic.h"
15#define FASTLED_USE_REAL_ATOMICS 0
20#if FASTLED_USE_REAL_ATOMICS
22using atomic = AtomicReal<T>;
24template <
typename T>
class AtomicFake;
38#if !FASTLED_USE_REAL_ATOMICS
159 T temp = old +
value;
166 T temp = old -
value;
173 T temp = old &
value;
180 T temp = old |
value;
187 T temp = old ^
value;
void store(T value, memory_order=memory_order_seq_cst) FL_NOEXCEPT
T exchange(T value, memory_order=memory_order_seq_cst) FL_NOEXCEPT
T operator^=(T value) FL_NOEXCEPT
T operator-=(T value) FL_NOEXCEPT
T operator--() FL_NOEXCEPT
T operator=(T value) FL_NOEXCEPT
T fetch_xor(T value) FL_NOEXCEPT
T operator++(int) FL_NOEXCEPT
AtomicFake(T value) FL_NOEXCEPT
T fetch_and(T value) FL_NOEXCEPT
AtomicFake(AtomicFake &&) FL_NOEXCEPT=delete
T operator--(int) FL_NOEXCEPT
T fetch_or(T value) FL_NOEXCEPT
T operator+=(T value) FL_NOEXCEPT
bool load(memory_order=memory_order_seq_cst) const FL_NOEXCEPT
T operator&=(T value) FL_NOEXCEPT
T operator|=(T value) FL_NOEXCEPT
T fetch_sub(T value) FL_NOEXCEPT
T operator++() FL_NOEXCEPT
AtomicFake & operator=(const AtomicFake &) FL_NOEXCEPT=delete
AtomicFake(const AtomicFake &) FL_NOEXCEPT=delete
T fetch_add(T value) FL_NOEXCEPT
bool compare_exchange_strong(T &expected, T desired, memory_order=memory_order_seq_cst) FL_NOEXCEPT
bool compare_exchange_weak(T &expected, T desired, memory_order=memory_order_seq_cst) FL_NOEXCEPT
expected type for operations that can fail (C++23-style)
constexpr int type_rank< T >::value
atomic< fl::i32 > atomic_i32
atomic< fl::u32 > atomic_u32
atomic< unsigned int > atomic_uint
atomic< bool > atomic_bool
Base definition for an LED controller.
Platform detection for FASTLED_MULTITHREADED macro.