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.
Direct Base Classes: NamedMutexImpl
All Base Classes: NamedMutexImpl
Member Functions: lock, tryLock, unlock
using ScopedLock = Poco::ScopedLock < NamedMutex >;
const std::string & name
creates the Mutex.
destroys the Mutex.
Locks the mutex. Blocks if the mutex is held by another process or thread.
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.
Unlocks the mutex so that it can be acquired by other threads.