Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2020-05-31 15:18:02


Greetings,

shared_ptr has a number of platform-specific implementations for its control
block, specifically the atomic reference count manipulation:

https://github.com/boostorg/smart_ptr/blob/develop/include/boost/smart_ptr/detail/sp_counted_base.hpp

Those have been accumulated over the years and I'd like to clean them up,
remove the unused ones and fold as many of them as possible into a few
generic implementations using either std::atomic, GCC atomic intrinsics
(https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/_005f_005fatomic-Builtins.html)
or GCC/intel sync intrinsics
(https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/_005f_005fsync-Builtins.html).

But I have no experience with non-x86 platforms and don't know where
boost::shared_ptr is still used and which of the platform-specific
implementations are still needed. (Neither do I know on which platforms the
atomic and the sync intrinsics actually work, as opposed to just compile and
then fail to link.)

Any information along these lines is welcome. If you know of a platform
where boost::shared_ptr is still used, but which supports none of the
"modern" ways to implement atomic ops, please let me know. If you would like
some of the plaform-specific files to be retained, please let me know.
Thanks in advance.


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