12 #ifndef ROC_CORE_MPSC_QUEUE_NODE_H_
13 #define ROC_CORE_MPSC_QUEUE_NODE_H_
46 if (mpsc_queue_data_.
queue) {
47 roc_panic(
"mpsc node: attempt to destroy node while it's still in queue");
53 return &mpsc_queue_data_;
57 mutable MpscQueueData mpsc_queue_data_;
MpscQueueData * mpsc_queue_data() const
Get list node data.
Base class for non-copyable objects.
#define ROC_CONTAINER_OF(ptr, type, member)
Cast a member of a structure out to the containing structure.
#define roc_panic(...)
Print error message and terminate program gracefully.
MpscQueueNode * container_of()
Get MpscQueueNode object that contains this ListData object.
MpscQueueData * next
Next list element.
void * queue
Pointer to the containing queue.