Library: Foundation
Package: Processes
Header: Poco/NamedMutex.h
Description
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.
Inheritance
Direct Base Classes: NamedMutexImpl
All Base Classes: NamedMutexImpl
Member Summary
Member Functions: lock, tryLock, unlock
Types Aliases
ScopedLock
using ScopedLock = Poco::ScopedLock < NamedMutex >;
ScopedLockWithUnlock
using ScopedLockWithUnlock = Poco::ScopedLockWithUnlock < NamedMutex >;
Constructors
NamedMutex
NamedMutex(
const std::string & name
);
creates the Mutex.
Destructor
~NamedMutex
~NamedMutex();
destroys the Mutex.
Member Functions
lock
void lock();
Locks the mutex. Blocks if the mutex is held by another process or thread.
tryLock
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.
unlock
void unlock();
Unlocks the mutex so that it can be acquired by other threads.