QRecursiveMutex Class | Qt Core 5.15.19 (original) (raw)

The QRecursiveMutex class provides access serialization between threads. More...

Header: #include
qmake: QT += core
Since: Qt 5.14
Inherits: QMutex (private)

This class was introduced in Qt 5.14.

Note: All functions in this class are thread-safe.

Public Functions

Detailed Description

The QRecursiveMutex class is a mutex, like QMutex, with which it is API-compatible. It differs from QMutex by accepting lock() calls from the same thread any number of times. QMutex would deadlock in this situation.

QRecursiveMutex is much more expensive to construct and operate on, so use a plain QMutex whenever you can. Sometimes, one public function, however, calls another public function, and they both need to lock the same mutex. In this case, you have two options:

See also QMutex, QMutexLocker, QReadWriteLock, QSemaphore, and QWaitCondition.

Member Function Documentation

QRecursiveMutex::QRecursiveMutex()

Constructs a new recursive mutex. The mutex is created in an unlocked state.

See also lock() and unlock().

QRecursiveMutex::~QRecursiveMutex()

Destroys the mutex.

Warning: Destroying a locked mutex may result in undefined behavior.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.