mirror of
				https://github.com/boostorg/smart_ptr.git
				synced 2025-10-29 06:41:39 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef BOOST_DETAIL_SPINLOCK_HPP_INCLUDED
 | |
| #define BOOST_DETAIL_SPINLOCK_HPP_INCLUDED
 | |
| 
 | |
| // MS compatible compilers support #pragma once
 | |
| 
 | |
| #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 | |
| # pragma once
 | |
| #endif
 | |
| 
 | |
| //
 | |
| //  boost/detail/spinlock.hpp
 | |
| //
 | |
| //  Copyright (c) 2008 Peter Dimov
 | |
| //
 | |
| //  Distributed under the Boost Software License, Version 1.0.
 | |
| //  See accompanying file LICENSE_1_0.txt or copy at
 | |
| //  http://www.boost.org/LICENSE_1_0.txt)
 | |
| //
 | |
| //  struct spinlock
 | |
| //  {
 | |
| //      void lock();
 | |
| //      bool try_lock();
 | |
| //      void unlock();
 | |
| //
 | |
| //      class scoped_lock;
 | |
| //  };
 | |
| //
 | |
| //  #define BOOST_DETAIL_SPINLOCK_INIT <unspecified>
 | |
| //
 | |
| 
 | |
| #include <boost/config.hpp>
 | |
| 
 | |
| #if defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )
 | |
| #  include <boost/detail/spinlock_sync.hpp>
 | |
| #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
 | |
| #  include <boost/detail/spinlock_w32.hpp>
 | |
| #elif defined(BOOST_HAS_PTHREADS)
 | |
| #  include <boost/detail/spinlock_pt.hpp>
 | |
| #else
 | |
| #  error Unrecognized threading platform
 | |
| #endif
 | |
| 
 | |
| #endif // #ifndef BOOST_DETAIL_SPINLOCK_HPP_INCLUDED
 |