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.

Construction

NamedMutex(const std::string& name)

creates the Mutex.

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.