CopperSpice API  1.7.4
QReadLocker Class Reference

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

Public Methods

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

Detailed Description

The QReadLocker class simplifies locking and unlocking read and 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);
// do something
return data;
}

It is equivalent to the following code.

QByteArray readData()
{
lock.lockForRead();
// do something
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 lock)
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()