diff options
Diffstat (limited to 'boost/fiber/type.hpp')
-rw-r--r-- | boost/fiber/type.hpp | 108 |
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 |