IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

QWriteLocker Class

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

All functions in this class are thread-safe.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

QWriteLocker Class

  • Header: QWriteLocker

  • CMake:

    find_package(Qt6 REQUIRED COMPONENTS Core)

    target_link_libraries(mytarget PRIVATE Qt6::Core)

  • qmake: QT += core

  • Group: QWriteLocker is part of thread

Detailed Description

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:

 
Sélectionnez
QReadWriteLock lock;

void writeData(const QByteArray &data)
{
    QWriteLocker locker(&lock);
    ...
}

It is equivalent to the following code:

 
Sélectionnez
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

Member Function Documentation

 

QWriteLocker::QWriteLocker(QReadWriteLock *lock)

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

QWriteLocker::~QWriteLocker()

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

See Also

QReadWriteLock *QWriteLocker::readWriteLock() const

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

void QWriteLocker::relock()

Relocks an unlocked lock.

See Also

See also unlock()

void QWriteLocker::unlock()

Unlocks the lock associated with this locker.

See Also

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+