123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #ifndef BOOST_THREAD_THREAD_GUARD_HPP
- #define BOOST_THREAD_THREAD_GUARD_HPP
- #include <boost/thread/detail/delete.hpp>
- #include <boost/thread/detail/move.hpp>
- #include <boost/thread/thread_functors.hpp>
- #include <boost/thread/detail/thread_interruption.hpp>
- #include <boost/config/abi_prefix.hpp>
- namespace boost
- {
-
- template <class CallableThread = join_if_joinable, class Thread=::boost::thread>
- class thread_guard
- {
- Thread& t_;
- public:
- BOOST_THREAD_NO_COPYABLE( thread_guard)
- explicit thread_guard(Thread& t) :
- t_(t)
- {
- }
- ~thread_guard()
- {
- #if defined BOOST_THREAD_PROVIDES_INTERRUPTIONS
-
- boost::this_thread::disable_interruption do_not_disturb;
- #endif
- CallableThread on_destructor;
- on_destructor(t_);
- }
- };
- }
- #include <boost/config/abi_suffix.hpp>
- #endif
|