]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/smart_ptr/detail/spinlock.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
e4653f784399bcc91f70f79d8362c27f8ca7399b
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / smart_ptr / detail / spinlock.hpp
1 #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED\r
2 #define BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED\r
3 \r
4 // MS compatible compilers support #pragma once\r
5 \r
6 #if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
7 # pragma once\r
8 #endif\r
9 \r
10 //\r
11 //  boost/detail/spinlock.hpp\r
12 //\r
13 //  Copyright (c) 2008 Peter Dimov\r
14 //\r
15 //  Distributed under the Boost Software License, Version 1.0.\r
16 //  See accompanying file LICENSE_1_0.txt or copy at\r
17 //  http://www.boost.org/LICENSE_1_0.txt)\r
18 //\r
19 //  struct spinlock\r
20 //  {\r
21 //      void lock();\r
22 //      bool try_lock();\r
23 //      void unlock();\r
24 //\r
25 //      class scoped_lock;\r
26 //  };\r
27 //\r
28 //  #define BOOST_DETAIL_SPINLOCK_INIT <unspecified>\r
29 //\r
30 \r
31 #include <boost/config.hpp>\r
32 #include <boost/smart_ptr/detail/sp_has_sync.hpp>\r
33 \r
34 #if defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ )\r
35 #  include <boost/smart_ptr/detail/spinlock_gcc_arm.hpp>\r
36 \r
37 #elif defined( BOOST_SP_HAS_SYNC )\r
38 #  include <boost/smart_ptr/detail/spinlock_sync.hpp>\r
39 \r
40 #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)\r
41 #  include <boost/smart_ptr/detail/spinlock_w32.hpp>\r
42 \r
43 #elif defined(BOOST_HAS_PTHREADS)\r
44 #  include <boost/smart_ptr/detail/spinlock_pt.hpp>\r
45 \r
46 #elif !defined(BOOST_HAS_THREADS)\r
47 #  include <boost/smart_ptr/detail/spinlock_nt.hpp>\r
48 \r
49 #else\r
50 #  error Unrecognized threading platform\r
51 #endif\r
52 \r
53 #endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED\r