Qore Programming Language 1.14.0
Loading...
Searching...
No Matches
QoreThreadLock Class Reference

provides a mutually-exclusive thread lock More...

#include <QoreThreadLock.h>

Inheritance diagram for QoreThreadLock:
[legend]

Public Member Methods

DLLLOCAL QoreThreadLock ()
 creates the lock
 
DLLLOCAL QoreThreadLock (const pthread_mutexattr_t *ma)
 creates the lock with the given attributes
 
DLLLOCAL QoreThreadLock (const QoreThreadLock &)
 creates a new object (not based on the original lock status)
 
DLLLOCAL ~QoreThreadLock ()
 destroys the lock
 
DLLLOCAL void lock ()
 grabs the lock (assumes that the lock is unlocked) More...
 
DLLLOCAL int trylock ()
 attempts to acquire the mutex and returns the status immediately; does not block More...
 
DLLLOCAL void unlock ()
 releases the lock (assumes that the lock is locked) More...
 

Friends

class QoreCondition
 

Detailed Description

provides a mutually-exclusive thread lock

This class is just a simple wrapper for pthread_mutex_t. It does not provide any special logic for checking for correct usage, etc.

See also
QoreRecursiveThreadLock

Member Function Documentation

◆ lock()

DLLLOCAL void QoreThreadLock::lock ( )
inline

grabs the lock (assumes that the lock is unlocked)

no error checking happens here; if you grab the lock twice it will deadlock

Referenced by AutoLocker::AutoLocker(), OptLocker::OptLocker(), SafeLocker::SafeLocker(), AutoUnlocker::~AutoUnlocker(), SafeLocker::lock(), and SafeLocker::relock().

◆ trylock()

DLLLOCAL int QoreThreadLock::trylock ( )
inline

attempts to acquire the mutex and returns the status immediately; does not block

Returns
0 if the lock was acquired, a non-zero error number if the lock was not acquired

◆ unlock()

DLLLOCAL void QoreThreadLock::unlock ( )
inline

releases the lock (assumes that the lock is locked)

no error checking is implemented here

Referenced by AutoUnlocker::AutoUnlocker(), AutoLocker::~AutoLocker(), OptLocker::~OptLocker(), SafeLocker::~SafeLocker(), and SafeLocker::unlock().


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