Since C++17(C++14) we have the std::shared_(timed_)mutex classes. Qt had an analogous class QReadWriteLock for a long time. QReadWriteLock's documentation says:
To ensure that writers aren't blocked forever by readers, readers attempting to obtain a lock will not succeed if there is a blocked writer waiting for access, even if the lock is currently only accessed by other readers. Also, if the lock is accessed by a writer and another writer comes in, that writer will have priority over any readers that might also be waiting.
As this is certainly a reasonable property, I wonder if std::shared_mutex and std::shared_timed_mutex behave in a similar way?