BVB Source Codes

mars Show lockpool.hpp Source code

Return Download mars: download lockpool.hpp Source code - Download mars Source code - Type:.hpp
  1. /*
  2.  * Distributed under the Boost Software License, Version 1.0.
  3.  * (See accompanying file LICENSE_1_0.txt or copy at
  4.  * http://www.boost.org/LICENSE_1_0.txt)
  5.  *
  6.  * Copyright (c) 2011 Helge Bahmann
  7.  * Copyright (c) 2013-2014 Andrey Semashev
  8.  */
  9. /*!
  10.  * \file   atomic/detail/lockpool.hpp
  11.  *
  12.  * This header contains declaration of the lockpool used to emulate atomic ops.
  13.  */
  14.  
  15. #ifndef BOOST_ATOMIC_DETAIL_LOCKPOOL_HPP_INCLUDED_
  16. #define BOOST_ATOMIC_DETAIL_LOCKPOOL_HPP_INCLUDED_
  17.  
  18. #include <boost/atomic/detail/config.hpp>
  19. #include <boost/atomic/detail/link.hpp>
  20.  
  21. #ifdef BOOST_HAS_PRAGMA_ONCE
  22. #pragma once
  23. #endif
  24.  
  25. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  26. namespace atomics {
  27. namespace detail {
  28.  
  29. struct lockpool
  30. {
  31.     class scoped_lock
  32.     {
  33.         void* m_lock;
  34.  
  35.     public:
  36.         explicit BOOST_ATOMIC_DECL scoped_lock(const volatile void* addr) BOOST_NOEXCEPT;
  37.         BOOST_ATOMIC_DECL ~scoped_lock() BOOST_NOEXCEPT;
  38.  
  39.         BOOST_DELETED_FUNCTION(scoped_lock(scoped_lock const&))
  40.         BOOST_DELETED_FUNCTION(scoped_lock& operator=(scoped_lock const&))
  41.     };
  42.  
  43.     static BOOST_ATOMIC_DECL void thread_fence() BOOST_NOEXCEPT;
  44.     static BOOST_ATOMIC_DECL void signal_fence() BOOST_NOEXCEPT;
  45. };
  46.  
  47. } // namespace detail
  48. } // namespace atomics
  49. } // namespace mars_boost
  50.  
  51. #endif // BOOST_ATOMIC_DETAIL_LOCKPOOL_HPP_INCLUDED_
  52.  
downloadlockpool.hpp 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