1 // Copyright (C) 2000 Stephen Cleary
2 //
3 // Distributed under the Boost Software License, Version 1.0. (See
4 // accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // See http://www.boost.org for updates, documentation, and revision history.
8 
9 #ifndef BOOST_POOL_MUTEX_HPP
10 #define BOOST_POOL_MUTEX_HPP
11 
12 #include <boost/config.hpp>  // for workarounds
13 #ifdef BOOST_HAS_THREADS
14 #include <boost/thread/mutex.hpp>
15 #endif
16 
17 namespace boost{ namespace details{ namespace pool{
18 
19 class null_mutex
20 {
21   private:
22     null_mutex(const null_mutex &);
23     void operator=(const null_mutex &);
24 
25   public:
null_mutex()26     null_mutex() { }
27 
lock()28     static void lock() { }
unlock()29     static void unlock() { }
30 };
31 
32 #if !defined(BOOST_HAS_THREADS) || defined(BOOST_NO_MT) || defined(BOOST_POOL_NO_MT)
33   typedef null_mutex default_mutex;
34 #else
35   typedef boost::mutex default_mutex;
36 #endif
37 
38 } // namespace pool
39 } // namespace details
40 } // namespace boost
41 
42 #endif
43