FastLED 3.9.15
Loading...
Searching...
No Matches
shared_ptr.cpp.hpp
Go to the documentation of this file.
1
17
18#include "fl/stl/shared_ptr.h"
19#include "fl/stl/noexcept.h"
20
21namespace fl {
22namespace detail {
23
24// Out-of-line destructor definition to anchor the vtable to this translation unit.
26
27// Reference count increment - must be out-of-line to prevent cross-binary vtable issues.
33
34// Reference count decrement - must be out-of-line to prevent cross-binary vtable issues.
35// Returns true if the reference count reached zero (object should be destroyed).
38 return false; // Never destroy in no-tracking mode
39 }
40 return (--shared_count == 0);
41}
42
43// Check if this control block is in no-tracking mode.
47
48} // namespace detail
49} // namespace fl
Compile-time linker keep-alive hook for a single fl::Bus.
Definition bus_traits.h:48
Base definition for an LED controller.
Definition crgb.hpp:179
#define FL_NOEXCEPT
static constexpr fl::u32 NO_TRACKING_VALUE
Definition shared_ptr.h:33
fl::atomic_u32 shared_count
Definition shared_ptr.h:29
bool remove_shared_ref() FL_NOEXCEPT
virtual ~ControlBlockBase() FL_NOEXCEPT
ControlBlockBase(bool track=true) FL_NOEXCEPT
Definition shared_ptr.h:35
void add_shared_ref() FL_NOEXCEPT
bool is_no_tracking() const FL_NOEXCEPT