// Copyright (C) 2005 Davis E. King (davisking@users.sourceforge.net)
// License: Boost Software License See LICENSE.txt for the full license.
#undef DLIB_AUTO_MUTEX_EXTENSIOn_ABSTRACT_
#ifdef DLIB_AUTO_MUTEX_EXTENSIOn_ABSTRACT_
#include "threads_kernel_abstract.h"
#include "rmutex_extension_abstract.h"
namespace dlib
{
// ----------------------------------------------------------------------------------------
class auto_mutex
{
/*!
INITIAL VALUE
The mutex given in the constructor is locked and associated with this
object.
WHAT THIS OBJECT REPRESENTS
This object represents a mechanism for automatically locking and unlocking
a mutex object.
!*/
public:
auto_mutex (
const mutex& m
);
/*!
ensures
- #*this is properly initialized
- m will be locked
!*/
auto_mutex (
const rmutex& m
);
/*!
ensures
- #*this is properly initialized
- m will be locked
!*/
~auto_mutex (
);
/*!
ensures
- all resources allocated by *this have been freed
- the mutex associated with *this has been unlocked
!*/
private:
// restricted functions
auto_mutex(auto_mutex&); // copy constructor
auto_mutex& operator=(auto_mutex&); // assignment operator
};
// ----------------------------------------------------------------------------------------
}
#endif // DLIB_AUTO_MUTEX_EXTENSIOn_ABSTRACT_