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;
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();
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
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
the implementation of Qore's object data type, reference counted, dynamically-allocated only ...
Definition: QoreObject.h:61
DLLLOCAL QoreObject * getObject() const
gets the current object
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:48
DLLLOCAL QoreVarRWLock * getRWL() const
gets the current read-write lock