mutex.hpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef BOOST_THREAD_MUTEX_HPP
  2. #define BOOST_THREAD_MUTEX_HPP
  3. // mutex.hpp
  4. //
  5. // (C) Copyright 2007 Anthony Williams
  6. //
  7. // Distributed under the Boost Software License, Version 1.0. (See
  8. // accompanying file LICENSE_1_0.txt or copy at
  9. // http://www.boost.org/LICENSE_1_0.txt)
  10. #include <boost/thread/detail/platform.hpp>
  11. #if defined(BOOST_THREAD_PLATFORM_WIN32)
  12. #include <boost/thread/win32/mutex.hpp>
  13. #elif defined(BOOST_THREAD_PLATFORM_PTHREAD)
  14. #include <boost/thread/pthread/mutex.hpp>
  15. #else
  16. #error "Boost threads unavailable on this platform"
  17. #endif
  18. #include <boost/thread/lockable_traits.hpp>
  19. namespace boost
  20. {
  21. namespace sync
  22. {
  23. #ifdef BOOST_THREAD_NO_AUTO_DETECT_MUTEX_TYPES
  24. template<>
  25. struct is_basic_lockable<mutex>
  26. {
  27. BOOST_STATIC_CONSTANT(bool, value = true);
  28. };
  29. template<>
  30. struct is_lockable<mutex>
  31. {
  32. BOOST_STATIC_CONSTANT(bool, value = true);
  33. };
  34. template<>
  35. struct is_basic_lockable<timed_mutex>
  36. {
  37. BOOST_STATIC_CONSTANT(bool, value = true);
  38. };
  39. template<>
  40. struct is_lockable<timed_mutex>
  41. {
  42. BOOST_STATIC_CONSTANT(bool, value = true);
  43. };
  44. #endif
  45. }
  46. }
  47. #endif