Fix potential data race

This case could be considered benign however it could still be an
undefined behavior to the compiler, so remove it.

Ref:
https://hacks.mozilla.org/2021/04/eliminating-data-races-in-firefox-a-technical-report/
This commit is contained in:
Chocobo1 2021-05-07 15:38:58 +08:00
parent 05e3e46f5a
commit a82ca6adb2
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C

View File

@ -184,9 +184,8 @@ SettingsStorage *SettingsStorage::instance()
bool SettingsStorage::save()
{
if (!m_dirty) return true; // Obtaining the lock is expensive, let's check early
const QWriteLocker locker(&m_lock); // to guard for `m_dirty`
if (!m_dirty) return true; // something might have changed while we were getting the lock
const QWriteLocker locker(&m_lock); // guard for `m_dirty` too
if (!m_dirty) return true;
const TransactionalSettings settings(QLatin1String("qBittorrent"));
if (!settings.write(m_data))