class Poco::NamedMutex
Overview
A NamedMutex (mutual exclusion) is a global synchronization mechanism used to control access to a shared resource in a concurrent (multi process) scenario. Moreā¦
#include <NamedMutex.h> class NamedMutex: private Poco::NamedMutexImpl { public: // typedefs typedef Poco::ScopedLock<NamedMutex> ScopedLock; // construction NamedMutex(const std::string& name); // methods void lock(); bool tryLock(); void unlock(); };
Inherited Members
protected: // methods void lockImpl(); bool tryLockImpl(); void unlockImpl();
Detailed Documentation
A NamedMutex (mutual exclusion) is a global synchronization mechanism used to control access to a shared resource in a concurrent (multi process) scenario.
Using the ScopedLock class is the preferred way to automatically lock and unlock a mutex.
Unlike a Mutex or a FastMutex, which itself is the unit of synchronization, a NamedMutex refers to a named operating system resource being the unit of synchronization. In other words, there can be multiple instances of NamedMutex referring to the same actual synchronization object.
There should not be more than one instance of NamedMutex for a given name in a process. Otherwise, the instances may interfere with each other.
Methods
void lock()
Locks the mutex.
Blocks if the mutex is held by another process or thread.
bool tryLock()
Tries to lock the mutex.
Returns false immediately if the mutex is already held by another process or thread. Returns true if the mutex was successfully locked.
void unlock()
Unlocks the mutex so that it can be acquired by other threads.