我有一个CNode
继承 boost 的类,list_base_hook
以便我可以在 boost 侵入列表中使用它。
class CNode
//Base hook with default tag, raw pointers and safe_link mode
:public list_base_hook<>
{
// Suppose the linked pointers inherited from list_base_hook
// are "m_prev", "m_next".
};
当节点从列表中弹出时,它将被推入另一个 FIFO。该 FIFO 计划重用m_prev
,m_next
将节点链接在一起,同时实现单读取器-单写入器线程安全语义。
在我的 FIFO 中:
class CFIFO
{
public:
void push_back(CNode *node)
{
// Is there any way to update the "m_next"/"m_prev" fields?
// SetNextLink is faked here..
m_tail->SetNextLink(node);
..
}
};
有没有办法得到m_prev
,的m_next
领域CNode
?