summaryrefslogtreecommitdiff
path: root/boost/fiber/type.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fiber/type.hpp')
-rw-r--r--boost/fiber/type.hpp108
1 files changed, 108 insertions, 0 deletions
diff --git a/boost/fiber/type.hpp b/boost/fiber/type.hpp
new file mode 100644
index 0000000000..9346265856
--- /dev/null
+++ b/boost/fiber/type.hpp
@@ -0,0 +1,108 @@
+
+// Copyright Oliver Kowalke 2013.
+// 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)
+
+#ifndef BOOST_FIBERS_TYPE_H
+#define BOOST_FIBERS_TYPE_H
+
+#include <atomic>
+#include <chrono>
+#include <exception>
+#include <functional>
+#include <map>
+#include <memory>
+#include <type_traits>
+
+#include <boost/assert.hpp>
+#include <boost/config.hpp>
+#include <boost/context/detail/apply.hpp>
+#include <boost/context/execution_context.hpp>
+#include <boost/context/stack_context.hpp>
+#include <boost/intrusive/list.hpp>
+#include <boost/intrusive/parent_from_member.hpp>
+#include <boost/intrusive_ptr.hpp>
+#include <boost/intrusive/set.hpp>
+
+#include <boost/fiber/detail/config.hpp>
+#include <boost/fiber/detail/data.hpp>
+#include <boost/fiber/detail/decay_copy.hpp>
+#include <boost/fiber/detail/fss.hpp>
+#include <boost/fiber/detail/spinlock.hpp>
+#include <boost/fiber/detail/wrap.hpp>
+#include <boost/fiber/exceptions.hpp>
+#include <boost/fiber/fixedsize_stack.hpp>
+#include <boost/fiber/properties.hpp>
+#include <boost/fiber/segmented_stack.hpp>
+
+#ifdef BOOST_HAS_ABI_HEADERS
+# include BOOST_ABI_PREFIX
+#endif
+
+namespace boost {
+namespace fibers {
+
+enum class type {
+ none = 0,
+ main_context = 1 << 1,
+ dispatcher_context = 1 << 2,
+ worker_context = 1 << 3,
+ pinned_context = main_context | dispatcher_context
+};
+
+inline
+constexpr type
+operator&( type l, type r) {
+ return static_cast< type >(
+ static_cast< unsigned int >( l) & static_cast< unsigned int >( r) );
+}
+
+inline
+constexpr type
+operator|( type l, type r) {
+ return static_cast< type >(
+ static_cast< unsigned int >( l) | static_cast< unsigned int >( r) );
+}
+
+inline
+constexpr type
+operator^( type l, type r) {
+ return static_cast< type >(
+ static_cast< unsigned int >( l) ^ static_cast< unsigned int >( r) );
+}
+
+inline
+constexpr type
+operator~( type l) {
+ return static_cast< type >( ~static_cast< unsigned int >( l) );
+}
+
+inline
+type &
+operator&=( type & l, type r) {
+ l = l & r;
+ return l;
+}
+
+inline
+type &
+operator|=( type & l, type r) {
+ l = l | r;
+ return l;
+}
+
+inline
+type &
+operator^=( type & l, type r) {
+ l = l ^ r;
+ return l;
+}
+
+}}
+
+#ifdef BOOST_HAS_ABI_HEADERS
+# include BOOST_ABI_SUFFIX
+#endif
+
+#endif // BOOST_FIBERS_TYPE_H