14 #ifndef LLVM_SYSTEM_RWMUTEX_H
15 #define LLVM_SYSTEM_RWMUTEX_H
87 template<
bool mt_only>
89 unsigned readers, writers;
109 assert(readers > 0 &&
"Reader lock not acquired before release!");
120 assert(writers == 0 &&
"Writer lock already acquired!");
131 assert(writers == 1 &&
"Writer lock not acquired before release!");
143 template<
bool mt_only>
148 mutex.reader_acquire();
152 mutex.reader_release();
158 template<
bool mt_only>
163 mutex.writer_acquire();
167 mutex.writer_release();
SmartRWMutex< mt_only > & mutex
~RWMutexImpl()
Destructor.
SmartRWMutex< false > RWMutex
bool writer_release()
Unconditionally release the lock in write mode.
bool writer_acquire()
Unconditionally acquire the lock in writer mode.
ScopedReader - RAII acquisition of a reader lock.
ScopedWriter - RAII acquisition of a writer lock.
bool reader_acquire()
Unconditionally acquire the lock in reader mode.
RWMutexImpl()
Default Constructor.
Platform agnostic RWMutex class.
bool llvm_is_multithreaded()
SmartRWMutex< mt_only > & mutex
SmartScopedReader< false > ScopedReader
SmartScopedReader(SmartRWMutex< mt_only > &m)
SmartScopedWriter< false > ScopedWriter
SmartScopedWriter(SmartRWMutex< mt_only > &m)
#define LLVM_DELETED_FUNCTION
bool reader_release()
Unconditionally release the lock in reader mode.