
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 :( thanks, tim -- tim@klingt.org http://tim.klingt.org Relying on the government to protect your privacy is like asking a peeping tom to install your window blinds. John Perry Barlow