Visual Servoing Platform  version 3.6.1 under development (2024-10-01)
vpMutex::vpScopedLock Class Reference

#include <visp3/core/vpMutex.h>

Public Member Functions

 vpScopedLock (vpMutex &mutex)
 
virtual ~vpScopedLock ()
 

Detailed Description

Class that allows protection by mutex.

The following example shows how to use this class to protect a portion of code from concurrent access. The scope of the mutex lock/unlock is determined by the constructor/destructor.

#include <visp3/core/vpMutex.h>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpMutex mutex;
{
// shared var to protect
}
}
Class that allows protection by mutex.
Definition: vpMutex.h:173
void lock()
Definition: vpMutex.h:91

Without using vpScopedLock, the previous example would become:

#include <visp3/core/vpMutex.h>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpMutex mutex;
{
mutex.lock();
// shared var to protect
mutex.unlock()
}
}
void unlock()
Definition: vpMutex.h:107
See also
vpMutex

Definition at line 172 of file vpMutex.h.

Constructor & Destructor Documentation

◆ vpScopedLock()

vpMutex::vpScopedLock::vpScopedLock ( vpMutex mutex)
inline

Constructor that locks the mutex.

Definition at line 187 of file vpMutex.h.

References vpMutex::lock().

◆ ~vpScopedLock()

virtual vpMutex::vpScopedLock::~vpScopedLock ( )
inlinevirtual

Destructor that unlocks the mutex.

Definition at line 189 of file vpMutex.h.

References vpMutex::unlock().