32 #ifndef _QORE_AUTOVLOCK_H 34 #define _QORE_AUTOVLOCK_H 36 class AbstractSmartLock;
43 DLLLOCAL
void unlockIntern() {
49 DLLLOCAL QLckPtr() : rwl(0) {
52 DLLLOCAL
void set(QoreVarRWLock* n_rwl) {
56 DLLLOCAL QoreVarRWLock* getRWL()
const {
60 DLLLOCAL
bool isSet()
const {
64 DLLLOCAL
void unlockAndClear() {
71 DLLLOCAL
void clear() {
94 hashdecl qore_avl_private* priv;
101 DLLLOCAL
void*
operator new(size_t) =
delete;
110 DLLEXPORT AutoVLock(AutoVLock&& o) =
default;
113 DLLEXPORT ~AutoVLock();
116 DLLEXPORT
operator bool()
const;
119 DLLEXPORT
void del();
122 DLLLOCAL
void set(QoreVarRWLock* n_rwl);
125 DLLLOCAL
void set(
QoreObject* n_o, QoreVarRWLock* n_rwl);
128 DLLLOCAL QoreVarRWLock* getRWL()
const;
134 DLLLOCAL
void clear();
140 DLLLOCAL
void addMemberNotification(
QoreObject* o,
const char* member);
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
the implementation of Qore's object data type, reference counted, dynamically-allocated only ...
Definition: QoreObject.h:61
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:46