Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2020-12-04 17:39:15

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
> "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.

> [*] Incidentally we want to increment with memory order relaxed instead of
> acq_rel.

This would probably be a good optimization in atomic_count.

Boost list run by bdawes at, gregod at, cpdaniel at, john at