1
#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
2
#define BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
4
// MS compatible compilers support #pragma once
6
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
11
// boost/detail/spinlock.hpp
13
// Copyright (c) 2008 Peter Dimov
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)
28
// #define BOOST_DETAIL_SPINLOCK_INIT <unspecified>
31
#include <boost/config.hpp>
32
#include <boost/smart_ptr/detail/sp_has_sync.hpp>
34
#if defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ )
35
# include <boost/smart_ptr/detail/spinlock_gcc_arm.hpp>
37
#elif defined( BOOST_SP_HAS_SYNC )
38
# include <boost/smart_ptr/detail/spinlock_sync.hpp>
40
#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
41
# include <boost/smart_ptr/detail/spinlock_w32.hpp>
43
#elif defined(BOOST_HAS_PTHREADS)
44
# include <boost/smart_ptr/detail/spinlock_pt.hpp>
46
#elif !defined(BOOST_HAS_THREADS)
47
# include <boost/smart_ptr/detail/spinlock_nt.hpp>
50
# error Unrecognized threading platform
53
#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED