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