Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/memory_order.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children | c530137014c0 |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 #ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED | |
2 #define BOOST_MEMORY_ORDER_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 // boost/memory_order.hpp | |
11 // | |
12 // Defines enum boost::memory_order per the C++0x working draft | |
13 // | |
14 // Copyright (c) 2008, 2009 Peter Dimov | |
15 // | |
16 // Distributed under the Boost Software License, Version 1.0. | |
17 // See accompanying file LICENSE_1_0.txt or copy at | |
18 // http://www.boost.org/LICENSE_1_0.txt) | |
19 | |
20 | |
21 namespace boost | |
22 { | |
23 | |
24 // | |
25 // Enum values are chosen so that code that needs to insert | |
26 // a trailing fence for acquire semantics can use a single | |
27 // test such as: | |
28 // | |
29 // if( mo & memory_order_acquire ) { ...fence... } | |
30 // | |
31 // For leading fences one can use: | |
32 // | |
33 // if( mo & memory_order_release ) { ...fence... } | |
34 // | |
35 // Architectures such as Alpha that need a fence on consume | |
36 // can use: | |
37 // | |
38 // if( mo & ( memory_order_acquire | memory_order_consume ) ) { ...fence... } | |
39 // | |
40 | |
41 enum memory_order | |
42 { | |
43 memory_order_relaxed = 0, | |
44 memory_order_acquire = 1, | |
45 memory_order_release = 2, | |
46 memory_order_acq_rel = 3, // acquire | release | |
47 memory_order_seq_cst = 7, // acq_rel | 4 | |
48 memory_order_consume = 8 | |
49 }; | |
50 | |
51 } // namespace boost | |
52 | |
53 #endif // #ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED |