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
14namespace 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