
Tim Blechmann <tim@klingt.org> writes:
Since you are using tagged pointers, you could increment the tag value whenever you reuse a node, which will at least ensure that the CAS in
thanks for noting this issue! i will apply a fix for it later ...
Alternatively, you could use hazard pointers, reference-counted pointers (as per the implementation I posted), reference counting on the whole queue (last one out deletes any dequeued nodes), or another memory reclamation scheme.
i have an implementation of the `pass-the-buck' algorithm for memory reclamation, but from my understanding both `pass-the-buck' and `smr'/hazard pointers may be patented :(
Hazard pointers are definitely patented. I don't know the state of pass-the-buck. Anthony -- Anthony Williams Author of C++ Concurrency in Action | http://www.manning.com/williams Custom Software Development | http://www.justsoftwaresolutions.co.uk Just Software Solutions Ltd, Registered in England, Company Number 5478976. Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL, UK