|
Boost : |
Subject: Re: [boost] threadpool lockfree_channel
From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2009-03-16 09:43:30
Tim Blechmann <tim_at_[hidden]> 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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk