1 #ifndef BOOST_PTHREAD_MUTEX_SCOPED_LOCK_HPP
2 #define BOOST_PTHREAD_MUTEX_SCOPED_LOCK_HPP
3 // (C) Copyright 2007-8 Anthony Williams
5 // Distributed under the Boost Software License, Version 1.0. (See
6 // accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
10 #include <boost/assert.hpp>
11 #include <boost/thread/pthread/pthread_helpers.hpp>
13 #include <boost/config/abi_prefix.hpp>
19 class pthread_mutex_scoped_lock
24 explicit pthread_mutex_scoped_lock(pthread_mutex_t* m_) BOOST_NOEXCEPT:
27 BOOST_VERIFY(!posix::pthread_mutex_lock(m));
29 void unlock() BOOST_NOEXCEPT
31 BOOST_VERIFY(!posix::pthread_mutex_unlock(m));
34 void unlock_if_locked() BOOST_NOEXCEPT
41 ~pthread_mutex_scoped_lock() BOOST_NOEXCEPT
51 class pthread_mutex_scoped_unlock
55 explicit pthread_mutex_scoped_unlock(pthread_mutex_t* m_) BOOST_NOEXCEPT:
58 BOOST_VERIFY(!posix::pthread_mutex_unlock(m));
60 ~pthread_mutex_scoped_unlock() BOOST_NOEXCEPT
62 BOOST_VERIFY(!posix::pthread_mutex_lock(m));
69 #include <boost/config/abi_suffix.hpp>