24 #include <core/threading/scoped_rwlock.h>
25 #include <core/threading/read_write_lock.h>
100 __lock_type = lock_type;
101 if ( initially_lock ) {
102 if (__lock_type == LOCK_WRITE) {
103 __refrwlock->lock_for_write();
105 __refrwlock->lock_for_read();
108 __locked = initially_lock;
121 __rawrwlock = rwlock;
122 __lock_type = lock_type;
123 if ( initially_lock ) {
124 if (__lock_type == LOCK_WRITE) {
127 __rawrwlock->lock_for_read();
130 __locked = initially_lock;
135 ScopedRWLock::~ScopedRWLock()
139 __rawrwlock->unlock();
141 __refrwlock->unlock();
151 ScopedRWLock::relock()
154 if (__lock_type == LOCK_WRITE) {
155 __rawrwlock->lock_for_write();
157 __rawrwlock->lock_for_read();
160 if (__lock_type == LOCK_WRITE) {
161 __refrwlock->lock_for_write();
163 __refrwlock->lock_for_read();
172 ScopedRWLock::unlock()
176 __rawrwlock->unlock();
178 __refrwlock->unlock();
void lock_for_write()
Aquire a writer lock.
Read/write lock to allow multiple readers but only a single writer on the resource at a time...
LockType
What to lock for.
RefPtr<> is a reference-counting shared smartpointer.