Ark Server API (ASE) - Wiki
Loading...
Searching...
No Matches
Poco::FastMutex Class Reference

#include <Mutex.h>

+ Inheritance diagram for Poco::FastMutex:
+ Collaboration diagram for Poco::FastMutex:

Public Types

using ScopedLock = Poco::ScopedLock<FastMutex>
 

Public Member Functions

 FastMutex ()
 
 ~FastMutex ()
 creates the Mutex.
 
void lock ()
 destroys the Mutex.
 
void lock (long milliseconds)
 
bool tryLock ()
 
bool tryLock (long milliseconds)
 
void unlock ()
 

Private Member Functions

 FastMutex (const FastMutex &)
 
FastMutexoperator= (const FastMutex &)
 
- Private Member Functions inherited from Poco::MutexImpl
 MutexImpl ()
 
 ~MutexImpl ()
 
void lockImpl ()
 
bool tryLockImpl ()
 
bool tryLockImpl (long milliseconds)
 
void unlockImpl ()
 

Detailed Description

A FastMutex (mutual exclusion) is similar to a Mutex. Unlike a Mutex, however, a FastMutex is not recursive, which means that a deadlock will occur if the same thread tries to lock a mutex it has already locked again. Locking a FastMutex is faster than locking a recursive Mutex. Using the ScopedLock class is the preferred way to automatically lock and unlock a mutex.

Definition at line 109 of file Mutex.h.

Member Typedef Documentation

◆ ScopedLock

Definition at line 119 of file Mutex.h.

Constructor & Destructor Documentation

◆ FastMutex() [1/2]

Poco::FastMutex::FastMutex ( )

◆ ~FastMutex()

Poco::FastMutex::~FastMutex ( )

creates the Mutex.

◆ FastMutex() [2/2]

Poco::FastMutex::FastMutex ( const FastMutex & )
private

Unlocks the mutex so that it can be acquired by other threads.

Member Function Documentation

◆ lock() [1/2]

void Poco::FastMutex::lock ( )
inline

destroys the Mutex.

Definition at line 308 of file Mutex.h.

+ Here is the call graph for this function:

◆ lock() [2/2]

void Poco::FastMutex::lock ( long milliseconds)
inline

Locks the mutex. Blocks if the mutex is held by another thread.

Definition at line 314 of file Mutex.h.

+ Here is the call graph for this function:

◆ operator=()

FastMutex & Poco::FastMutex::operator= ( const FastMutex & )
private

◆ tryLock() [1/2]

bool Poco::FastMutex::tryLock ( )
inline

Locks the mutex. Blocks up to the given number of milliseconds if the mutex is held by another thread. Throws a TimeoutException if the mutex can not be locked within the given timeout.

Performance Note: On most platforms (including Windows), this member function is implemented using a loop calling (the equivalent of) tryLock() and Thread::sleep(). On POSIX platforms that support pthread_mutex_timedlock(), this is used.

Definition at line 321 of file Mutex.h.

+ Here is the call graph for this function:

◆ tryLock() [2/2]

bool Poco::FastMutex::tryLock ( long milliseconds)
inline

Tries to lock the mutex. Returns false immediately if the mutex is already held by another thread. Returns true if the mutex was successfully locked.

Definition at line 327 of file Mutex.h.

+ Here is the call graph for this function:

◆ unlock()

void Poco::FastMutex::unlock ( )
inline

Locks the mutex. Blocks up to the given number of milliseconds if the mutex is held by another thread. Returns true if the mutex was successfully locked.

Performance Note: On most platforms (including Windows), this member function is implemented using a loop calling (the equivalent of) tryLock() and Thread::sleep(). On POSIX platforms that support pthread_mutex_timedlock(), this is used.

Definition at line 333 of file Mutex.h.

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: