void foo ( Bar* bar , void(Bar::*qux)(void) )
{
if ( bar )
{
bar->qux();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:
bar可以在其他线程检查后删除。
我无法添加互斥锁成员Bar来锁定它。
因此我想知道,如果我可以告诉处理器原子地运行这个函数,我该怎么做?我在谷歌上花了很多时间,但没有找到可以理解的手册......
PS的Debian,GCC,增压NOT允许,C ++ 11 IS允许的。