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

◆ set_data()

bool MayaFlux::Nodes::StreamReaderNode::set_data ( std::span< const double >  data,
const void *  owner = nullptr 
)

Replace the internal data and reset read head to 0.

Parameters
dataSamples to read from. Copied internally.
ownerFeeder claiming write access. Rejected if another feeder owns this node.
Returns
true if data was accepted, false if a different owner holds the lock

Definition at line 53 of file StreamReaderNode.cpp.

54{
55 const void* current = m_owner.load(std::memory_order_acquire);
56
57 if (current == nullptr) {
58 m_owner.compare_exchange_strong(current, owner, std::memory_order_acq_rel);
59 } else if (current != owner) {
60 return false;
61 }
62
63 m_data.assign(data.begin(), data.end());
64 m_read_head = 0;
65 return true;
66}
std::atomic< const void * > m_owner

References m_data, m_owner, and m_read_head.