Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/thread/thread_guard.hpp @ 64:6acf95ebd97d
Update tester subrepo
author | Chris Cannam |
---|---|
date | Mon, 22 Sep 2014 11:44:42 +0100 |
parents | 2665513ce2d3 |
children |
line wrap: on
line source
// Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // (C) Copyright 2009-2012 Anthony Williams // (C) Copyright 2012 Vicente J. Botet Escriba // Based on the Anthony's idea of thread_joiner in CCiA #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/config/abi_prefix.hpp> namespace boost { /** * Non-copyable RAII scoped thread guard joiner which join the thread if joinable when destroyed. */ template <class CallableThread = join_if_joinable> class thread_guard { thread& t_; public: BOOST_THREAD_NO_COPYABLE( thread_guard) explicit thread_guard(thread& t) : t_(t) { } ~thread_guard() { CallableThread on_destructor; on_destructor(t_); } }; } #include <boost/config/abi_suffix.hpp> #endif