
1. Lock-free free list (workarounds ABA problem).
i didn't read all the code, but in tagged_ptr::set you write: Type vTag = m_p[1]; // NOTE: getting 'tag' before getting 'data'! Type vOld = m_p[0]; ... i am not sure, whether it is necessary to get tag before data, but if you need to do that, you have to add a memory barrier, otherwise compiler or cpu may reorder the memory access ... btw, if you are using the stack just as free list, i don't think you need any aba prevention ... also, what about grabbing the code from my freelist implementation? http://tim.klingt.org/git?p=boost_lockfree.git;a=blob;f=boost/lockfree/freel... cheers, tim -- tim@klingt.org http://tim.klingt.org Which is more musical, a truck passing by a factory or a truck passing by a music school? John Cage