The QWriteLocker class is a convenience class that simplifies locking and unlocking read-write locks for write access. More...
#include <QWriteLocker>
Note: All functions in this class are thread-safe.
QWriteLocker ( QReadWriteLock * lock ) | |
~QWriteLocker () | |
QReadWriteLock * | readWriteLock () const |
void | relock () |
void | unlock () |
The QWriteLocker class is a convenience class that simplifies locking and unlocking read-write locks for write access.
The purpose of QWriteLocker (and QReadLocker is to simplify QReadWriteLock locking and unlocking. Locking and unlocking statements or in exception handling code is error-prone and difficult to debug. QWriteLocker can be used in such situations to ensure that the state of the lock is always well-defined.
Here's an example that uses QWriteLocker to lock and unlock a read-write lock for writing:
QReadWriteLock lock; void writeData(const QByteArray &data) { QWriteLocker locker(&lock); ... }
It is equivalent to the following code:
QReadWriteLock lock; void writeData(const QByteArray &data) { lock.lockForWrite(); ... lock.unlock(); }
The QMutexLocker documentation shows examples where the use of a locker object greatly simplifies programming.
See also QReadLocker and QReadWriteLock.
Constructs a QWriteLocker and locks lock for writing. The lock will be unlocked when the QWriteLocker is destroyed. If lock is zero, QWriteLocker does nothing.
See also QReadWriteLock::lockForWrite().
Destroys the QWriteLocker and unlocks the lock that was passed to the constructor.
See also QReadWriteLock::unlock().
Returns a pointer to the read-write lock that was passed to the constructor.
Relocks an unlocked lock.
See also unlock().
Unlocks the lock associated with this locker.
See also QReadWriteLock::unlock().
© 2008-2011 Nokia Corporation and/or its subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide.
All other trademarks are property of their respective owners. Privacy Policy
Licensees holding valid Qt Commercial licenses may use this document in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and Nokia.
Alternatively, this document may be used under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation.