FastLED 3.10.8
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_info.h:57
u8 u8 fract8 blur_amount FL_NO_EXCEPT
Definition blur.h:186
Base definition for an LED controller.
Definition crgb.hpp:179
#define FL_DTOR_NOEXCEPT
static constexpr fl::u32 NO_TRACKING_VALUE
Definition shared_ptr.h:41
fl::atomic_u32 shared_count
Definition shared_ptr.h:37
void add_shared_ref() FL_NO_EXCEPT
ControlBlockBase(bool track=true) FL_NO_EXCEPT
Definition shared_ptr.h:43
bool is_no_tracking() const FL_NO_EXCEPT
bool remove_shared_ref() FL_NO_EXCEPT
virtual ~ControlBlockBase() FL_DTOR_NOEXCEPT