CopperSpice API  1.7.2
QReadLocker Class Reference

Convenience class which simplifies locking and unlocking read-write locks for read access. More...

Public Methods

 QReadLocker (QReadWriteLock *readWriteLock)
 
 ~QReadLocker ()
 
QReadWriteLockreadWriteLock () const
 
void relock ()
 
void unlock ()
 

Detailed Description

The QReadLocker class is a convenience class that simplifies locking and unlocking read-write locks for read access.

The purpose of QReadLocker (and QWriteLocker) is to simplify QReadWriteLock locking and unlocking. Locking and unlocking statements or in exception handling code is error-prone and difficult to debug. QReadLocker can be used in such situations to ensure that the state of the lock is always well-defined.

Here is an example that uses QReadLocker to lock and unlock a read-write lock for reading:

QByteArray readData()
{
QReadLocker locker(&lock);
...
return data;
}

It is equivalent to the following code:

QByteArray readData()
{
lock.lockForRead();
...
lock.unlock();
return data;
}

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

See also
QWriteLocker, QReadWriteLock

Constructor & Destructor Documentation

QReadLocker::QReadLocker ( QReadWriteLock readWriteLock)
inline

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

See also
QReadWriteLock::lockForRead()
QReadLocker::~QReadLocker ( )
inline

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

See also
QReadWriteLock::unlock()

Method Documentation

QReadWriteLock * QReadLocker::readWriteLock ( ) const
inline

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

void QReadLocker::relock ( )
inline

Relocks an unlocked lock.

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

Unlocks the lock associated with this locker.

See also
QReadWriteLock::unlock()