PIP  1.8.0
Platform-Independent Primitives
PIMutex Class Reference

Mutex. More...

Public Member Functions

 PIMutex ()
 Constructs unlocked mutex.
 
 ~PIMutex ()
 Destroy mutex.
 
void lock ()
 Lock mutex. More...
 
void unlock ()
 Unlock mutex. More...
 
bool tryLock ()
 Try to lock mutex. More...
 
bool isLocked () const
 Returns if mutex is locked.
 

Detailed Description

Mutex.

Synopsis

PIMutex provides synchronization blocks between several threads. Using mutex guarantees execution of some code only one of threads. Mutex contains logic state and functions to change it: lock(), unlock() and tryLock().

Usage

Block of code that should to be executed only one thread simultaniously should to be started with lock() and ended with unlock().

mutex.lock();
// ... your code here
mutex.unlock();

"mutex" in this example is one for all threads.

Member Function Documentation

◆ lock()

void PIMutex::lock ( )

Lock mutex.

If mutex is unlocked it set to locked state and returns immediate. If mutex is already locked function blocks until mutex will be unlocked

◆ unlock()

void PIMutex::unlock ( )

Unlock mutex.

In any case this function returns immediate

◆ tryLock()

bool PIMutex::tryLock ( )

Try to lock mutex.

If mutex is unlocked it set to locked state and returns "true" immediate. If mutex is already locked function returns immediate an returns "false"