MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ reclaim()

void MayaFlux::Nodes::HookList::reclaim ( )
private

Definition at line 85 of file NodeUtils.cpp.

86{
87 Retired* list = m_retired.exchange(nullptr);
88 if (!list) {
89 return;
90 }
91
92 if (m_readers.load() != 0) {
93 Retired* tail = list;
94 while (tail->next) {
95 tail = tail->next;
96 }
97 tail->next = m_retired.load();
98 while (!m_retired.compare_exchange_weak(tail->next, list)) {
99 }
100 return;
101 }
102
103 while (list) {
104 Retired* next = list->next;
105 delete list->entries;
106 delete list;
107 list = next;
108 }
109}
std::atomic< Retired * > m_retired
std::atomic< uint32_t > m_readers

References MayaFlux::Nodes::HookList::Retired::entries, m_readers, m_retired, and MayaFlux::Nodes::HookList::Retired::next.

Referenced by mutate().

+ Here is the caller graph for this function: