All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
SafeLocker Class Reference

provides an exception-safe way to manage locks in Qore, only to be used on the stack, cannot be dynamically allocated More...

`#include <QoreThreadLock.h>`

Collaboration diagram for SafeLocker:
[legend]

## Public Member Functions

DLLLOCAL | SafeLocker (QoreThreadLock *l)
| creates the object and grabs the lock
DLLLOCAL | SafeLocker (QoreThreadLock &l)
| creates the object and grabs the lock
DLLLOCAL | ~SafeLocker ()
| destroys the object and unlocks the lock if it's held
DLLLOCAL void | lock ()
| locks the object and updates the locked flag, assumes that the lock is not already held
DLLLOCAL void | unlock ()
| unlocks the object and updates the locked flag, assumes that the lock is held
DLLLOCAL void | stay_locked ()
| will not unlock the lock when the destructor is run; do not use any other functions of this class after calling this function

## Protected Attributes

QoreThreadLock * | lck
| the pointer to the lock that will be managed
bool | locked
| flag indicating if the lock is held or not

## Detailed Description

provides an exception-safe way to manage locks in Qore, only to be used on the stack, cannot be dynamically allocated

Ensures that locks are released by locking the lock when the object is created and releasing it when the object is destroyed. Also allows the lock to be released before the object's destruction at the expense of one extra byte on the stack compared to the AutoLocker class.

See Also
  AutoLocker
  OptLocker

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

- include/qore/QoreThreadLock.h (5431)