Main Page
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
y
Variables
_
a
b
i
k
n
p
r
s
t
v
Typedefs
a
b
c
f
h
i
m
n
p
s
t
u
w
y
Enumerations
Enumerator
a
b
c
e
f
h
i
l
m
n
o
p
r
s
t
u
v
w
Classes
Class List
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
~
Variables
_
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
y
Enumerations
Enumerator
a
b
c
e
g
i
k
l
m
n
o
p
r
s
u
v
Related Functions
a
b
c
d
e
i
l
m
o
r
s
u
w
x
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
x
Functions
_
a
b
c
d
e
g
m
o
p
r
s
t
Variables
_
a
b
f
g
l
t
u
Typedefs
Enumerations
Enumerator
Macros
_
a
b
c
e
f
g
i
l
m
r
s
u
v
w
x
sick_visionary_cpp_shared
3pp
boost
smart_ptr
detail
spinlock.hpp
Go to the documentation of this file.
1
#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
2
#define BOOST_SMART_PTR_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
#include <
boost/smart_ptr/detail/sp_has_sync.hpp
>
33
34
#if defined( BOOST_SP_USE_STD_ATOMIC )
35
# if !defined( __clang__ )
36
# include <
boost/smart_ptr/detail/spinlock_std_atomic.hpp
>
37
# else
38
// Clang (at least up to 3.4) can't compile spinlock_pool when
39
// using std::atomic, so substitute the __sync implementation instead.
40
# include <
boost/smart_ptr/detail/spinlock_sync.hpp
>
41
# endif
42
43
#elif defined( BOOST_SP_USE_PTHREADS )
44
# include <
boost/smart_ptr/detail/spinlock_pt.hpp
>
45
46
#elif defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ )
47
# include <
boost/smart_ptr/detail/spinlock_gcc_arm.hpp
>
48
49
#elif defined( BOOST_SP_HAS_SYNC )
50
# include <
boost/smart_ptr/detail/spinlock_sync.hpp
>
51
52
#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
53
# include <
boost/smart_ptr/detail/spinlock_w32.hpp
>
54
55
#elif defined(BOOST_HAS_PTHREADS)
56
# include <
boost/smart_ptr/detail/spinlock_pt.hpp
>
57
58
#elif !defined(BOOST_HAS_THREADS)
59
# include <
boost/smart_ptr/detail/spinlock_nt.hpp
>
60
61
#else
62
# error Unrecognized threading platform
63
#endif
64
65
#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
spinlock_nt.hpp
config.hpp
spinlock_pt.hpp
spinlock_gcc_arm.hpp
spinlock_sync.hpp
sp_has_sync.hpp
spinlock_w32.hpp
spinlock_std_atomic.hpp
sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:48:40