|  | Home · All Classes · Modules

# QReadLocker Class Reference
[QtCore module]

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

### Methods

- __init__ (self, QReadWriteLock)
- QReadWriteLock readWriteLock (self)
- relock (self)
- unlock (self)

### Special Methods

- object __enter__ (self)
- __exit__ (self, object type, object value, object traceback)

## 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's an example that uses QReadLocker to lock and unlock a read-write lock for reading:

     QReadWriteLock lock;

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

It is equivalent to the following code:

     QReadWriteLock lock;

     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 and QReadWriteLock.

## Method Documentation

### QReadLocker.__init__ (self, QReadWriteLock)

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().

### QReadWriteLock QReadLocker.readWriteLock (self)

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

### QReadLocker.relock (self)

Relocks an unlocked lock.

See also unlock().

### QReadLocker.unlock (self)

Unlocks the lock associated with this locker.

See also QReadWriteLock.unlock().

### object QReadLocker.__enter__ (self)

### QReadLocker.__exit__ (self, object type, object value, object traceback)