
Le 13/01/13 17:15, Andrey Semashev a écrit :
On Sunday 13 January 2013 16:08:28 Vicente J. Botet Escriba wrote:
Could you work on complementing your patch to take care of the C++11 interface? I have updated the patch in the ticket #5752 with the C++11 definition of atomic_flag. Note that the new patch disables the BOOST_THREAD_PROVIDES_ONCE_CXX11 macro when constexpr is not available. It is OK. I will update the documentation to clarify this point. The patch also adds some heuristic code for detecting an atomic-compatible integer type to even better avoid using the spinlock pool of Boost.Atomic. Great. Does it mean that Boost.Thread must link with Boost.Atomic when when the spinlock pool is needed? Is there a know platform/compiler for which the condition
BOOST_ATOMIC_INT_LOCK_FREE == 2 || BOOST_ATOMIC_SHORT_LOCK_FREE == 2 || BOOST_ATOMIC_CHAR_LOCK_FREE == 2 || BOOST_ATOMIC_LONG_LOCK_FREE == 2 || (defined(BOOST_HAS_LONG_LONG) && BOOST_ATOMIC_LLONG_LOCK_FREE == 2) is false? I have included your implementation conditionally in separated files once_atomic.hpp and once_atomic.cpp. I will commit it this evening after I run my regression tests and I'll activate your implementation in order to see how the Boost regression tests behave. I hope that everything will be OK. Thanks for your contribution. Vicente