32 #ifndef _QORE_AUTOVLOCK_H
34 #define _QORE_AUTOVLOCK_H
36 class AbstractSmartLock;
43 DLLLOCAL
void unlockIntern() {
49 DLLLOCAL QLckPtr() : rwl(0) {
60 DLLLOCAL
bool isSet()
const {
64 DLLLOCAL
void unlockAndClear() {
71 DLLLOCAL
void clear() {
94 struct qore_avl_private* priv;
99 DLLLOCAL AutoVLock& operator=(
const AutoVLock&);
101 DLLLOCAL
void*
operator new(size_t);
113 DLLEXPORT
operator bool()
const;
116 DLLEXPORT
void del();
131 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:80
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 int unlock()
unlocks the lock (assumes the lock is locked)
Definition: QoreRWLock.h:91
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:64
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:43
provides a simple POSIX-threads-based read-write lock
Definition: QoreRWLock.h:43
DLLLOCAL QoreRWLock * getRWL() const
gets the current read-write lock