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/continuation.cpp | |
| parent | 8f7cf138264e0caa318144bf8a2c950e0b0a8593 (diff) | |
Restoring authorship annotation for <[email protected]>. Commit 2 of 2.
Diffstat (limited to 'contrib/restricted/boost/libs/context/src/continuation.cpp')
| -rw-r--r-- | contrib/restricted/boost/libs/context/src/continuation.cpp | 120 |
1 files changed, 60 insertions, 60 deletions
diff --git a/contrib/restricted/boost/libs/context/src/continuation.cpp b/contrib/restricted/boost/libs/context/src/continuation.cpp index ef41c7d7679..0779baaba87 100644 --- a/contrib/restricted/boost/libs/context/src/continuation.cpp +++ b/contrib/restricted/boost/libs/context/src/continuation.cpp @@ -1,60 +1,60 @@ - -// Copyright Oliver Kowalke 2017. -// 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) - -#if defined(BOOST_USE_UCONTEXT) -#include "boost/context/continuation_ucontext.hpp" -#elif defined(BOOST_USE_WINFIB) -#include "boost/context/continuation_winfib.hpp" -#else -#include "boost/context/execution_context.hpp" -#endif - -#include <boost/config.hpp> - -#ifdef BOOST_HAS_ABI_HEADERS -# include BOOST_ABI_PREFIX -#endif - -namespace boost { -namespace context { -namespace detail { - -// zero-initialization -thread_local activation_record * current_rec; -thread_local static std::size_t counter; - -// schwarz counter -activation_record_initializer::activation_record_initializer() noexcept { - if ( 0 == counter++) { - current_rec = new activation_record(); - } -} - -activation_record_initializer::~activation_record_initializer() { - if ( 0 == --counter) { - BOOST_ASSERT( current_rec->is_main_context() ); - delete current_rec; - } -} - -} - -namespace detail { - -activation_record *& -activation_record::current() noexcept { - // initialized the first time control passes; per thread - thread_local static activation_record_initializer initializer; - return current_rec; -} - -} - -}} - -#ifdef BOOST_HAS_ABI_HEADERS -# include BOOST_ABI_SUFFIX -#endif + +// Copyright Oliver Kowalke 2017. +// 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) + +#if defined(BOOST_USE_UCONTEXT) +#include "boost/context/continuation_ucontext.hpp" +#elif defined(BOOST_USE_WINFIB) +#include "boost/context/continuation_winfib.hpp" +#else +#include "boost/context/execution_context.hpp" +#endif + +#include <boost/config.hpp> + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_PREFIX +#endif + +namespace boost { +namespace context { +namespace detail { + +// zero-initialization +thread_local activation_record * current_rec; +thread_local static std::size_t counter; + +// schwarz counter +activation_record_initializer::activation_record_initializer() noexcept { + if ( 0 == counter++) { + current_rec = new activation_record(); + } +} + +activation_record_initializer::~activation_record_initializer() { + if ( 0 == --counter) { + BOOST_ASSERT( current_rec->is_main_context() ); + delete current_rec; + } +} + +} + +namespace detail { + +activation_record *& +activation_record::current() noexcept { + // initialized the first time control passes; per thread + thread_local static activation_record_initializer initializer; + return current_rec; +} + +} + +}} + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_SUFFIX +#endif |
