Boost logo

Boost :

Subject: Re: [boost] [atomic] review results
From: Peter Dimov (pdimov_at_[hidden])
Date: 2011-11-07 12:06:33


> Helge Bahmann's boost.atomic library is ACCEPTED.

Congratulations on the acceptance, and a few belated (sorry) comments:

- Boost.Atomic should not use the smart_ptr spinlock pool; it should contain
its own under boost/atomic. It could be a straight copy of the shared_ptr
one. Boost.Atomic is lower level than shared_ptr and should not have an
upward dependency, because a future shared_ptr may (and will) use
Boost.Atomic in its spinlock implementation.

- For the same reason, atomic_flag should be a proper fundamental component
and not a wrapper over atomic_bool. atomic_flag is the building block for
spinlocks; it should always be present and should always be lock-free. (And
it should have ATOMIC_FLAG_INIT, because the spinlock pool needs it.)

- The interlocked implementation seems suboptimal - it doesn't use
InterlockedExchange and InterlockedExchangeAdd. (The spelling of
atomic_signal_fence under MSVC version something and above is
_ReadWriteBarrier - see boost/smart_ptr/detail/spinlock_w32.hpp).

I apologize if these have already been discussed.


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