1 /*
2   Provides a basic subset of boost::unique_lock functionality.  Provided only because
3   including boost/thread/locks.hpp requires linking to thread library
4 */
5 // Copyright Frank Mori Hess 2008.
6 // Distributed under the Boost Software License, Version
7 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
9 
10 // See http://www.boost.org/libs/signals2 for library home page.
11 
12 #ifndef BOOST_SIGNALS2_UNIQUE_LOCK_HPP
13 #define BOOST_SIGNALS2_UNIQUE_LOCK_HPP
14 
15 #include <boost/noncopyable.hpp>
16 
17 namespace boost
18 {
19   namespace signals2
20   {
21     namespace detail
22     {
23       template<typename Mutex>
24       class unique_lock: public noncopyable
25       {
26       public:
unique_lock(Mutex & m)27         unique_lock(Mutex &m): _mutex(m)
28         {
29           _mutex.lock();
30         }
~unique_lock()31         ~unique_lock()
32         {
33           _mutex.unlock();
34         }
35       private:
36         Mutex &_mutex;
37       };
38     } // namespace detail
39   } // namespace signals2
40 } // namespace boost
41 
42 #endif  // BOOST_SIGNALS2_UNIQUE_LOCK_HPP
43