/usr/include/boost/thread/detail
NameSizeModeActions
atomic_redef_macros.hpp6440644editdlrm
atomic_undef_macros.hpp9130644editdlrm
config.hpp181490644editdlrm
counter.hpp24410644editdlrm
delete.hpp17120644editdlrm
force_cast.hpp9980644editdlrm
function_wrapper.hpp20920644editdlrm
invoke.hpp513430644editdlrm
invoker.hpp230780644editdlrm
is_convertible.hpp13450644editdlrm
lockable_wrapper.hpp9800644editdlrm
log.hpp24710644editdlrm
make_tuple_indices.hpp90040644editdlrm
memory.hpp14650644editdlrm
move.hpp105480644editdlrm
nullary_function.hpp57580644editdlrm
platform.hpp28600644editdlrm
platform_time.hpp153450644editdlrm
singleton.hpp11880644editdlrm
thread.hpp263120644editdlrm
thread_group.hpp42790644editdlrm
thread_heap_alloc.hpp6310644editdlrm
thread_interruption.hpp12280644editdlrm
thread_safety.hpp58550644editdlrm
tss_hooks.hpp25310644editdlrm
variadic_footer.hpp2620644editdlrm
variadic_header.hpp5370644editdlrm
Edit: /usr/include/boost/thread/detail/counter.hpp (2441B)
// 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) // (C) Copyright 2013 Vicente J. Botet Escriba #ifndef BOOST_THREAD_COUNTER_HPP #define BOOST_THREAD_COUNTER_HPP #include #include //#include //#include #include #include #include #include #include namespace boost { namespace detail { struct counter { condition_variable cond_; std::size_t value_; counter(std::size_t value) : value_(value) { } counter& operator=(counter const& rhs) { value_ = rhs.value_; return *this; } counter& operator=(std::size_t value) { value_ = value; return *this; } operator std::size_t() const { return value_; } operator std::size_t&() { return value_; } void inc_and_notify_all() { ++value_; cond_.notify_all(); } void dec_and_notify_all() { --value_; cond_.notify_all(); } void assign_and_notify_all(counter const& rhs) { value_ = rhs.value_; cond_.notify_all(); } void assign_and_notify_all(std::size_t value) { value_ = value; cond_.notify_all(); } }; struct counter_is_not_zero { counter_is_not_zero(counter const& count) : count_(count) {} bool operator()() const { return count_ != 0; } counter const& count_; }; struct counter_is_zero { counter_is_zero(counter const& count) : count_(count) {} bool operator()() const { return count_ == 0; } counter const& count_; }; struct is_zero { is_zero(std::size_t& count) : count_(count) {} bool operator()() const { return count_ == 0; } std::size_t& count_; }; struct not_equal { not_equal(std::size_t& x, std::size_t& y) : x_(x), y_(y) {} bool operator()() const { return x_ != y_; } std::size_t& x_; std::size_t& y_; }; } } // namespace boost #include #endif