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, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk