--- /home/andyc/work/3rdParty/boost_1_39_0/boost/thread/locks.hpp 2008-10-13 21:30:13.000000000 +0100 +++ boost/thread/locks.hpp 2009-08-11 15:20:44.000000000 +0100 @@ -331,19 +331,23 @@ } void lock() { +#ifndef BOOST_NO_EXCEPTIONS if(owns_lock()) { throw boost::lock_error(); } +#endif m->lock(); is_locked=true; } bool try_lock() { +#ifndef BOOST_NO_EXCEPTIONS if(owns_lock()) { throw boost::lock_error(); } +#endif is_locked=m->try_lock(); return is_locked; } @@ -366,10 +370,12 @@ } void unlock() { +#ifndef BOOST_NO_EXCEPTIONS if(!owns_lock()) { throw boost::lock_error(); } +#endif m->unlock(); is_locked=false; } @@ -557,47 +563,57 @@ } void lock() { +#ifndef BOOST_NO_EXCEPTIONS if(owns_lock()) { throw boost::lock_error(); } +#endif m->lock_shared(); is_locked=true; } bool try_lock() { +#ifndef BOOST_NO_EXCEPTIONS if(owns_lock()) { throw boost::lock_error(); } +#endif is_locked=m->try_lock_shared(); return is_locked; } bool timed_lock(boost::system_time const& target_time) { +#ifndef BOOST_NO_EXCEPTIONS if(owns_lock()) { throw boost::lock_error(); } +#endif is_locked=m->timed_lock_shared(target_time); return is_locked; } template bool timed_lock(Duration const& target_time) { +#ifndef BOOST_NO_EXCEPTIONS if(owns_lock()) { throw boost::lock_error(); } +#endif is_locked=m->timed_lock_shared(target_time); return is_locked; } void unlock() { +#ifndef BOOST_NO_EXCEPTIONS if(!owns_lock()) { throw boost::lock_error(); } +#endif m->unlock_shared(); is_locked=false; } @@ -720,28 +736,34 @@ } void lock() { +#ifndef BOOST_NO_EXCEPTIONS if(owns_lock()) { throw boost::lock_error(); } +#endif m->lock_upgrade(); is_locked=true; } bool try_lock() { +#ifndef BOOST_NO_EXCEPTIONS if(owns_lock()) { throw boost::lock_error(); } +#endif is_locked=m->try_lock_upgrade(); return is_locked; } void unlock() { +#ifndef BOOST_NO_EXCEPTIONS if(!owns_lock()) { throw boost::lock_error(); } +#endif m->unlock_upgrade(); is_locked=false; }