BVB Source Codes

mars Show execution_context.cpp Source code

Return Download mars: download execution_context.cpp Source code - Download mars Source code - Type:.cpp
  1.  
  2. //          Copyright Oliver Kowalke 2009.
  3. // Distributed under the Boost Software License, Version 1.0.
  4. //    (See accompanying file LICENSE_1_0.txt or copy at
  5. //          http://www.boost.org/LICENSE_1_0.txt)
  6.  
  7. #include "boost/context/execution_context.hpp"
  8.  
  9. #include <boost/config.hpp>
  10.  
  11. #ifdef BOOST_HAS_ABI_HEADERS
  12. # include BOOST_ABI_PREFIX
  13. #endif
  14.  
  15. #if ! defined(BOOST_CONTEXT_NO_CXX11)
  16. # if (defined(BOOST_EXECUTION_CONTEXT) && (BOOST_EXECUTION_CONTEXT == 1))
  17. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  18. namespace context {
  19. namespace detail {
  20.  
  21. thread_local
  22. activation_record::ptr_t
  23. activation_record::current_rec;
  24.  
  25. // zero-initialization
  26. thread_local static std::size_t counter;
  27.  
  28. // schwarz counter
  29. activation_record_initializer::activation_record_initializer() noexcept {
  30.     if ( 0 == counter++) {
  31.         activation_record::current_rec.reset( new activation_record() );
  32.     }
  33. }
  34.  
  35. activation_record_initializer::~activation_record_initializer() {
  36.     if ( 0 == --counter) {
  37.         BOOST_ASSERT( activation_record::current_rec->is_main_context() );
  38.         delete activation_record::current_rec.detach();
  39.     }
  40. }
  41.  
  42. }
  43.  
  44. execution_context
  45. execution_context::current() noexcept {
  46.     // initialized the first time control passes; per thread
  47.     thread_local static detail::activation_record_initializer initializer;
  48.     return execution_context();
  49. }
  50.  
  51. }}
  52. # endif
  53. #endif
  54.  
  55. # ifdef BOOST_HAS_ABI_HEADERS
  56. #  include BOOST_ABI_SUFFIX
  57. # endif
  58.  
downloadexecution_context.cpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top