/usr/include/boost/thread
NameSizeModeActions
concurrent_queues/-0755rm
csbl/-0755rm
detail/-0755rm
executors/-0755rm
experimental/-0755rm
futures/-0755rm
pthread/-0755rm
v2/-0755rm
win32/-0755rm
barrier.hpp74210644editdlrm
caller_context.hpp15260644editdlrm
completion_latch.hpp65790644editdlrm
condition.hpp4900644editdlrm
condition_variable.hpp6340644editdlrm
cv_status.hpp5310644editdlrm
exceptional_ptr.hpp10980644editdlrm
exceptions.hpp62860644editdlrm
executor.hpp4760644editdlrm
externally_locked.hpp107920644editdlrm
externally_locked_stream.hpp47840644editdlrm
future.hpp2037920644editdlrm
interruption.hpp5960644editdlrm
is_locked_by_this_thread.hpp10620644editdlrm
latch.hpp49670644editdlrm
lockable_adapter.hpp60430644editdlrm
lockable_concepts.hpp41140644editdlrm
lockable_traits.hpp78530644editdlrm
locks.hpp5720644editdlrm
lock_algorithms.hpp132010644editdlrm
lock_concepts.hpp47920644editdlrm
lock_factories.hpp23170644editdlrm
lock_guard.hpp22900644editdlrm
lock_options.hpp7010644editdlrm
lock_traits.hpp12340644editdlrm
lock_types.hpp344180644editdlrm
mutex.hpp11660644editdlrm
null_mutex.hpp63460644editdlrm
once.hpp13240644editdlrm
ostream_buffer.hpp9250644editdlrm
poly_lockable.hpp21000644editdlrm
poly_lockable_adapter.hpp21240644editdlrm
poly_shared_lockable.hpp58070644editdlrm
poly_shared_lockable_adapter.hpp47920644editdlrm
recursive_mutex.hpp15350644editdlrm
reverse_lock.hpp13160644editdlrm
scoped_thread.hpp85470644editdlrm
shared_lock_guard.hpp11920644editdlrm
shared_mutex.hpp14000644editdlrm
strict_lock.hpp62460644editdlrm
synchronized_value.hpp311100644editdlrm
sync_bounded_queue.hpp5950644editdlrm
sync_queue.hpp5710644editdlrm
testable_mutex.hpp39250644editdlrm
thread.hpp3850644editdlrm
thread_functors.hpp13660644editdlrm
thread_guard.hpp10690644editdlrm
thread_only.hpp8030644editdlrm
thread_pool.hpp5310644editdlrm
thread_time.hpp15900644editdlrm
tss.hpp26030644editdlrm
user_scheduler.hpp52220644editdlrm
with_lock_guard.hpp60520644editdlrm
xtime.hpp23900644editdlrm
Edit: /usr/include/boost/thread/lockable_adapter.hpp (6043B)
////////////////////////////////////////////////////////////////////////////// // // (C) Copyright Vicente J. Botet Escriba 2008-2009,2012. 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) // // See http://www.boost.org/libs/thread for documentation. // ////////////////////////////////////////////////////////////////////////////// #ifndef BOOST_THREAD_LOCKABLE_ADAPTER_HPP #define BOOST_THREAD_LOCKABLE_ADAPTER_HPP #include #include namespace boost { //[basic_lockable_adapter template class basic_lockable_adapter { public: typedef BasicLockable mutex_type; protected: mutex_type& lockable() const { return lockable_; } mutable mutex_type lockable_; /*< mutable so that it can be modified by const functions >*/ public: BOOST_THREAD_NO_COPYABLE( basic_lockable_adapter) /*< no copyable >*/ basic_lockable_adapter() {} void lock() const { lockable().lock(); } void unlock() const { lockable().unlock(); } }; //] //[lockable_adapter template class lockable_adapter : public basic_lockable_adapter { public: typedef Lockable mutex_type; bool try_lock() const { return this->lockable().try_lock(); } }; //] //[timed_lockable_adapter template class timed_lockable_adapter: public lockable_adapter { public: typedef TimedLock mutex_type; template bool try_lock_until(chrono::time_point const & abs_time) const { return this->lockable().try_lock_until(abs_time); } template bool try_lock_for(chrono::duration const & rel_time) const { return this->lockable().try_lock_for(rel_time); } }; //] //[shared_lockable_adapter template class shared_lockable_adapter: public timed_lockable_adapter { public: typedef SharableLock mutex_type; void lock_shared() const { this->lockable().lock_shared(); } bool try_lock_shared() const { return this->lockable().try_lock_shared(); } void unlock_shared() const { this->lockable().unlock_shared(); } template bool try_lock_shared_until(chrono::time_point const & abs_time) const { return this->lockable().try_lock_shared_until(abs_time); } template bool try_lock_shared_for(chrono::duration const & rel_time) const { return this->lockable().try_lock_shared_for(rel_time); } }; //] //[upgrade_lockable_adapter template class upgrade_lockable_adapter: public shared_lockable_adapter { public: typedef UpgradableLock mutex_type; void lock_upgrade() const { this->lockable().lock_upgrade(); } bool try_lock_upgrade() const { return this->lockable().try_lock_upgrade(); } void unlock_upgrade() const { this->lockable().unlock_upgrade(); } template bool try_lock_upgrade_until(chrono::time_point const & abs_time) const { return this->lockable().try_lock_upgrade_until(abs_time); } template bool try_lock_upgrade_for(chrono::duration const & rel_time) const { return this->lockable().try_lock_upgrade_for(rel_time); } bool try_unlock_shared_and_lock() const { return this->lockable().try_unlock_shared_and_lock(); } template bool try_unlock_shared_and_lock_until(chrono::time_point const & abs_time) const { return this->lockable().try_unlock_shared_and_lock_until(abs_time); } template bool try_unlock_shared_and_lock_for(chrono::duration const & rel_time) const { return this->lockable().try_unlock_shared_and_lock_for(rel_time); } void unlock_and_lock_shared() const { this->lockable().unlock_and_lock_shared(); } bool try_unlock_shared_and_lock_upgrade() const { return this->lockable().try_unlock_shared_and_lock_upgrade(); } template bool try_unlock_shared_and_lock_upgrade_until(chrono::time_point const & abs_time) const { return this->lockable().try_unlock_shared_and_lock_upgrade_until(abs_time); } template bool try_unlock_shared_and_lock_upgrade_for(chrono::duration const & rel_time) const { return this->lockable().try_unlock_shared_and_lock_upgrade_for(rel_time); } void unlock_and_lock_upgrade() const { this->lockable().unlock_and_lock_upgrade(); } void unlock_upgrade_and_lock() const { this->lockable().unlock_upgrade_and_lock(); } bool try_unlock_upgrade_and_lock() const { return this->lockable().try_unlock_upgrade_and_lock(); } template bool try_unlock_upgrade_and_lock_until(chrono::time_point const & abs_time) const { return this->lockable().try_unlock_upgrade_and_lock_until(abs_time); } template bool try_unlock_upgrade_and_lock_for(chrono::duration const & rel_time) const { return this->lockable().try_unlock_upgrade_and_lock_for(rel_time); } void unlock_upgrade_and_lock_shared() const { this->lockable().unlock_upgrade_and_lock_shared(); } }; //] } #endif