5
// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
7
// Distributed under the Boost Software License, Version 1.0. (See accompanying
8
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
11
#ifndef ASIO_DETAIL_SCOPED_LOCK_HPP
12
#define ASIO_DETAIL_SCOPED_LOCK_HPP
14
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
16
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
18
#include "asio/detail/push_options.hpp"
20
#include "asio/detail/noncopyable.hpp"
25
// Helper class to lock and unlock a mutex automatically.
26
template <typename Mutex>
31
// Constructor acquires the lock.
39
// Destructor releases the lock.
46
// Explicitly acquire the lock.
56
// Explicitly release the lock.
66
// Test whether the lock is held.
72
// Get the underlying mutex.
79
// The underlying mutex.
82
// Whether the mutex is currently locked or unlocked.
89
#include "asio/detail/pop_options.hpp"
91
#endif // ASIO_DETAIL_SCOPED_LOCK_HPP