From b0d1506b7205ebf29fa8348379f7fa85def49595 Mon Sep 17 00:00:00 2001 From: Alessandro Pasotti Date: Wed, 12 Dec 2018 18:45:22 +0100 Subject: [PATCH] Fix QgsReadWriteLocker changeMode since mMode was never updated, the lock was never toggled from read to write or vice-versa. This was leading to crashes because the paths that were meant to be serialized and thread safe were not. Fixes #20789 and probably many more random crashes where QgsFeaturePool was used. --- src/core/qgsreadwritelocker.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/qgsreadwritelocker.cpp b/src/core/qgsreadwritelocker.cpp index c0c711cabdc..b71b050649d 100644 --- a/src/core/qgsreadwritelocker.cpp +++ b/src/core/qgsreadwritelocker.cpp @@ -34,6 +34,8 @@ void QgsReadWriteLocker::changeMode( QgsReadWriteLocker::Mode mode ) unlock(); + mMode = mode; + if ( mMode == Read ) mLock.lockForRead(); else if ( mMode == Write )