24 #ifndef _QORE_AUTOVLOCK_H
26 #define _QORE_AUTOVLOCK_H
28 class AbstractSmartLock;
35 DLLLOCAL
void unlockIntern() {
41 DLLLOCAL QLckPtr() : rwl(0) {
52 DLLLOCAL
bool isSet()
const {
56 DLLLOCAL
void unlockAndClear() {
63 DLLLOCAL
void clear() {
86 struct qore_avl_private* priv;
91 DLLLOCAL AutoVLock& operator=(
const AutoVLock&);
93 DLLLOCAL
void*
operator new(size_t);
105 DLLEXPORT
operator bool()
const;
108 DLLEXPORT
void del();
123 DLLLOCAL
void clear();
AutoVLock is a container for safely managing global variable and object lock handovers, required for functions accessing global variables and object data where locking is necessary.
Definition: AutoVLock.h:72
DLLLOCAL void set(QoreRWLock *n_rwl)
sets the current lock
DLLEXPORT ~AutoVLock()
releases all locks held and destroys the container
DLLEXPORT void del()
manually releases the lock currently held
DLLLOCAL void clear()
leaves the lock locked and the object referenced and clears the object and lock pointers ...
DLLLOCAL void addMemberNotification(QoreObject *o, const char *member)
adds an object member notification entry, internal-only
DLLLOCAL QoreObject * getObject() const
gets the current object
the implementation of Qore's object data type, reference counted, dynamically-allocated only ...
Definition: QoreObject.h:56
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:35
provides a simple POSIX-threads-based read-write lock
Definition: QoreRWLock.h:35
DLLLOCAL QoreRWLock * getRWL() const
gets the current read-write lock