Boost logo

Boost :

From: Billy (billy.donahue_at_[hidden])
Date: 2020-12-05 23:52:16


On Fri, Dec 4, 2020 at 12:39 PM Andrey Semashev via Boost <
boost_at_[hidden]> wrote:

> On 12/4/20 7:11 PM, Billy via Boost wrote:
> > Hi Boost,
> >
> > We're considering implementing our own atomic ref count for
> > `intrusive_ref_count` [*]. A question came up. Is the `CounterPolicyT`
> > template parameter a stable extension hook, or are users expected to
> > strictly stick to the two provided policies of `thread_unsafe_counter`
> and
> > `thread_safe_counter`? I can see that under the hood, these policy
> structs
> > are trivially simple and we can just do it, but the question is really
> > about whether the lack of documentation implies that it's a private boost
> > detail.
> >
> > From
> >
> https://www.boost.org/doc/libs/1_74_0/libs/smart_ptr/doc/html/smart_ptr.html#intrusive_ref_counter
> >
> > "The second parameter is a policy that defines the nature of the
> reference
> > counter. The library provides two such policies: thread_unsafe_counter
> and
> > thread_safe_counter."
>
> As an original implementor of the component, I did not intend this to be
> an extension point. If I wanted to customize reference counting, I would
> probably not use intrusive_ref_counter and instead implement
> intrusive_ptr_add_ref/release or a similar base class to my requirements.
>

Yes, that's what we've been doing thus far.
I guess we'll carry on doing that.

Thanks Andrey and Peter.

> > [*] Incidentally we want to increment with memory order relaxed instead
> of
> > acq_rel.
>
> This would probably be a good optimization in atomic_count.
>

-- 
ǝnɥɐuop ʎllıq

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk