diff options
| author | neksard <[email protected]> | 2022-02-10 16:45:33 +0300 |
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:45:33 +0300 |
| commit | 1d9c550e7c38e051d7961f576013a482003a70d9 (patch) | |
| tree | b2cc84ee7850122e7ccf51d0ea21e4fa7e7a5685 /contrib/restricted/boost/libs/context/src/execution_context.cpp | |
| parent | 8f7cf138264e0caa318144bf8a2c950e0b0a8593 (diff) | |
Restoring authorship annotation for <[email protected]>. Commit 2 of 2.
Diffstat (limited to 'contrib/restricted/boost/libs/context/src/execution_context.cpp')
| -rw-r--r-- | contrib/restricted/boost/libs/context/src/execution_context.cpp | 138 |
1 files changed, 69 insertions, 69 deletions
diff --git a/contrib/restricted/boost/libs/context/src/execution_context.cpp b/contrib/restricted/boost/libs/context/src/execution_context.cpp index a3102367e65..fc593ecb03c 100644 --- a/contrib/restricted/boost/libs/context/src/execution_context.cpp +++ b/contrib/restricted/boost/libs/context/src/execution_context.cpp @@ -1,69 +1,69 @@ - -// Copyright Oliver Kowalke 2009. -// 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) - -#include "boost/context/detail/config.hpp" - -#if ! defined(BOOST_CONTEXT_NO_CXX11) - -#include "boost/context/execution_context.hpp" -#include <boost/config.hpp> - -#ifdef BOOST_HAS_ABI_HEADERS -# include BOOST_ABI_PREFIX -#endif - -namespace boost { -namespace context { - -#if !defined(BOOST_NO_CXX11_THREAD_LOCAL) - -namespace detail { - -ecv1_activation_record::ptr_t & -ecv1_activation_record::current() noexcept { - thread_local static ptr_t current; - return current; -} - -// zero-initialization -thread_local static std::size_t counter; - -// schwarz counter -ecv1_activation_record_initializer::ecv1_activation_record_initializer() noexcept { - if ( 0 == counter++) { - ecv1_activation_record::current().reset( new ecv1_activation_record() ); - } -} - -ecv1_activation_record_initializer::~ecv1_activation_record_initializer() { - if ( 0 == --counter) { - BOOST_ASSERT( ecv1_activation_record::current()->is_main_context() ); - delete ecv1_activation_record::current().detach(); - } -} - -} - -namespace v1 { - -execution_context -execution_context::current() noexcept { - // initialized the first time control passes; per thread - thread_local static detail::ecv1_activation_record_initializer initializer; - return execution_context(); -} - -} - -#endif - -}} - -#ifdef BOOST_HAS_ABI_HEADERS -# include BOOST_ABI_SUFFIX -#endif - -#endif + +// Copyright Oliver Kowalke 2009. +// 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) + +#include "boost/context/detail/config.hpp" + +#if ! defined(BOOST_CONTEXT_NO_CXX11) + +#include "boost/context/execution_context.hpp" +#include <boost/config.hpp> + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_PREFIX +#endif + +namespace boost { +namespace context { + +#if !defined(BOOST_NO_CXX11_THREAD_LOCAL) + +namespace detail { + +ecv1_activation_record::ptr_t & +ecv1_activation_record::current() noexcept { + thread_local static ptr_t current; + return current; +} + +// zero-initialization +thread_local static std::size_t counter; + +// schwarz counter +ecv1_activation_record_initializer::ecv1_activation_record_initializer() noexcept { + if ( 0 == counter++) { + ecv1_activation_record::current().reset( new ecv1_activation_record() ); + } +} + +ecv1_activation_record_initializer::~ecv1_activation_record_initializer() { + if ( 0 == --counter) { + BOOST_ASSERT( ecv1_activation_record::current()->is_main_context() ); + delete ecv1_activation_record::current().detach(); + } +} + +} + +namespace v1 { + +execution_context +execution_context::current() noexcept { + // initialized the first time control passes; per thread + thread_local static detail::ecv1_activation_record_initializer initializer; + return execution_context(); +} + +} + +#endif + +}} + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_SUFFIX +#endif + +#endif |
