1 #ifndef BOOST_THREAD_DETAIL_THREAD_INTERRUPTION_HPP 2 #define BOOST_THREAD_DETAIL_THREAD_INTERRUPTION_HPP 3 // Distributed under the Boost Software License, Version 1.0. (See 4 // accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt) 6 // (C) Copyright 2007-9 Anthony Williams 7 // (C) Copyright 2012 Vicente J. Botet Escriba 8 9 #include <boost/thread/detail/config.hpp> 10 #include <boost/thread/detail/delete.hpp> 11 12 #if defined BOOST_THREAD_PROVIDES_INTERRUPTIONS 13 14 namespace boost 15 { 16 namespace this_thread 17 { 18 class BOOST_THREAD_DECL disable_interruption 19 { 20 bool interruption_was_enabled; 21 friend class restore_interruption; 22 public: 23 BOOST_THREAD_NO_COPYABLE(disable_interruption) 24 disable_interruption() BOOST_NOEXCEPT; 25 ~disable_interruption() BOOST_NOEXCEPT; 26 }; 27 28 class BOOST_THREAD_DECL restore_interruption 29 { 30 public: 31 BOOST_THREAD_NO_COPYABLE(restore_interruption) 32 explicit restore_interruption(disable_interruption& d) BOOST_NOEXCEPT; 33 ~restore_interruption() BOOST_NOEXCEPT; 34 }; 35 } 36 } 37 38 #endif // BOOST_THREAD_PROVIDES_INTERRUPTIONS 39 #endif // header 40