/usr/include/boost/fiber/detail
NameSizeModeActions
config.hpp18280644editdlrm
context_spinlock_queue.hpp26770644editdlrm
context_spmc_queue.hpp68480644editdlrm
convert.hpp10390644editdlrm
cpu_relax.hpp25540644editdlrm
data.hpp11320644editdlrm
decay_copy.hpp7330644editdlrm
disable_overload.hpp8020644editdlrm
exchange.hpp7340644editdlrm
fss.hpp13930644editdlrm
futex.hpp15560644editdlrm
is_all_same.hpp10220644editdlrm
rtm.hpp17910644editdlrm
spinlock.hpp21680644editdlrm
spinlock_rtm.hpp48450644editdlrm
spinlock_status.hpp4570644editdlrm
spinlock_ttas.hpp52680644editdlrm
spinlock_ttas_adaptive.hpp59440644editdlrm
spinlock_ttas_adaptive_futex.hpp66220644editdlrm
spinlock_ttas_futex.hpp58790644editdlrm
thread_barrier.hpp15400644editdlrm
Edit: /usr/include/boost/fiber/detail/spinlock.hpp (2168B)
// Copyright Oliver Kowalke 2013. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_FIBERS_SPINLOCK_H #define BOOST_FIBERS_SPINLOCK_H #include #include #if !defined(BOOST_FIBERS_NO_ATOMICS) # include # include # include # if defined(BOOST_FIBERS_HAS_FUTEX) # include # include # endif # if defined(BOOST_USE_TSX) # include # endif #endif #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_PREFIX #endif namespace boost { namespace fibers { namespace detail { #if defined(BOOST_FIBERS_NO_ATOMICS) struct spinlock { constexpr spinlock() noexcept {} void lock() noexcept {} void unlock() noexcept {} }; struct spinlock_lock { constexpr spinlock_lock( spinlock &) noexcept {} void lock() noexcept {} void unlock() noexcept {} }; #else # if defined(BOOST_FIBERS_SPINLOCK_STD_MUTEX) using spinlock = std::mutex; # elif defined(BOOST_FIBERS_SPINLOCK_TTAS_FUTEX) # if defined(BOOST_USE_TSX) using spinlock = spinlock_rtm< spinlock_ttas_futex >; # else using spinlock = spinlock_ttas_futex; # endif # elif defined(BOOST_FIBERS_SPINLOCK_TTAS_ADAPTIVE_FUTEX) # if defined(BOOST_USE_TSX) using spinlock = spinlock_rtm< spinlock_ttas_adaptive_futex >; # else using spinlock = spinlock_ttas_adaptive_futex; # endif # elif defined(BOOST_FIBERS_SPINLOCK_TTAS_ADAPTIVE) # if defined(BOOST_USE_TSX) using spinlock = spinlock_rtm< spinlock_ttas_adaptive >; # else using spinlock = spinlock_ttas_adaptive; # endif # else # if defined(BOOST_USE_TSX) using spinlock = spinlock_rtm< spinlock_ttas >; # else using spinlock = spinlock_ttas; # endif # endif using spinlock_lock = std::unique_lock< spinlock >; #endif }}} #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_SUFFIX #endif #endif // BOOST_FIBERS_SPINLOCK_H