--- boost/thread/locks.hpp 2008-04-22 14:19:03.000000000 -0700 +++ boost/thread/locks.hpp 2008-04-22 15:58:08.000000000 -0700 @@ -54,6 +54,30 @@ template + class unlock_guard + { + private: + Mutex& m; + + explicit unlock_guard(unlock_guard&); + unlock_guard& operator=(unlock_guard&); + public: + explicit unlock_guard(Mutex& m_): + m(m_) + { + m.unlock(); + } + unlock_guard(Mutex& m_,adopt_lock_t): + m(m_) + {} + ~unlock_guard() + { + m.lock(); + } + }; + + + template class unique_lock { private: