Boost logo

Boost Users :

From: Ben Hutchings (ben.hutchings_at_[hidden])
Date: 2004-07-16 08:10:13


Russell Hind <rhind_at_[hidden]> wrote:
> Caleb Epstein wrote:
>
> > I've been perusing the source code of <boost/shared_ptr.hpp> and
> > noticed that it uses the <boost/detail/shared_count.hpp> class to do
> > reference counting and not <boost/detail/atomic_count.hpp> (unless
> > BOOST_NO_MEMBER_TEMPLATES or BOOST_MSVC6_MEMBER_TEMPLATES are
> > defined).
> >
> > Can anyone comment on the reasoning behind using a lightweight
> > mutex-protected counter instead of an atomic counter? I'd
> > think that an atomic counter would be faster, but I suspect that
> > there is a good reason for protecting the count with a mutex. This
> > then begs the question of why use the atomic counter in the
> > situations mentioned above?
>
> If you look at shared_count, you'll see it has to keep track of 2
> values, strong_count and weak_count, you can't do this with 'atomic
> count' so therefore it uses lwm.

It isn't fundamentally necessary to have two counters, though; see
<http://groups.google.com/groups?threadm=slrnbhbnpc.154.do-not-spam
-benh%40tin.bwsint.com>.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net