CopperSpice API  1.7.4
QWriteLocker Class Reference

The QWriteLocker class simplifies locking and unlocking read and write locks for write access. More...

Public Methods

 QWriteLocker (QReadWriteLock *lock)
 
 ~QWriteLocker ()
 
QReadWriteLockreadWriteLock () const
 
void relock ()
 
void unlock ()
 

Detailed Description

The QWriteLocker class simplifies locking and unlocking read and 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 is an example that uses QWriteLocker to lock and unlock a read-write lock for writing.

void writeData(const QByteArray &data)
{
QWriteLocker locker(&lock);
// do something
}

It is equivalent to the following code:

void writeData(const QByteArray &data)
{
lock.lockForWrite();
// do something
lock.unlock();
}

The QMutexLocker documentation shows examples where the use of a locker object greatly simplifies programming.

See also
QReadLocker, QReadWriteLock

Constructor & Destructor Documentation

QWriteLocker::QWriteLocker ( QReadWriteLock lock)
inline

Constructs a QWriteLocker and locks the given lock for writing. The lock will be unlocked when the QWriteLocker is destroyed. If lock is zero, QWriteLocker does nothing.

See also
QReadWriteLock::lockForWrite()
QWriteLocker::~QWriteLocker ( )
inline

Destroys the QWriteLocker and unlocks the lock that was passed to the constructor.

See also
QReadWriteLock::unlock()

Method Documentation

QReadWriteLock * QWriteLocker::readWriteLock ( ) const
inline

Returns a pointer to the read-write lock that was passed to the constructor.

void QWriteLocker::relock ( )
inline

Relocks an unlocked lock.

See also
unlock()
void QWriteLocker::unlock ( )
inline

Unlocks the lock associated with this locker.

See also
QReadWriteLock::unlock()