454{
456 bool expected = false;
457 if (m_pending_op.active.compare_exchange_strong(
458 expected, true,
459 std::memory_order_acquire,
460 std::memory_order_relaxed)) {
461
462 m_pending_op.processor = processor;
463 m_pending_op.buffer =
buffer;
464 m_pending_op.is_addition = is_addition;
465 m_pending_op.search_all_slots = search_all_slots;
467 return true;
468 }
469 }
470
471 if (rejection_reason && is_addition) {
472 *rejection_reason = "Processor operation queue full";
473 }
474 return false;
475}
std::shared_ptr< NetworkGeometryBuffer > buffer
std::atomic< uint32_t > m_pending_count
PendingProcessorOp m_pending_ops[MAX_PENDING_PROCESSORS]