From 8a113985cda1693c8158916065bd54e57d028cda Mon Sep 17 00:00:00 2001 From: Milian Wolff <mail@milianw.de> Date: Mon, 1 Dec 2014 11:39:33 +0100 Subject: [PATCH 16/40] Use an QAtomicInt instead of a plain bool for Entity::cacheEnabled. A plain bool is not thread safe and leads to undefined behavior. So better be safe than sorry and use a thread safe QAtomicInt. --- server/src/storage/entities-source.xsl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/src/storage/entities-source.xsl b/server/src/storage/entities-source.xsl index 05a8cb119..e398da5da 100644 --- a/server/src/storage/entities-source.xsl +++ b/server/src/storage/entities-source.xsl @@ -99,7 +99,7 @@ class <xsl:value-of select="$className"/>::Private : public QSharedData static void addToCache( const <xsl:value-of select="$className"/> & entry ); // cache - static bool cacheEnabled; + static QAtomicInt cacheEnabled; static QMutex cacheMutex; <xsl:if test="column[@name = 'id']"> static QHash<qint64, <xsl:value-of select="$className"/> > idCache; @@ -111,7 +111,7 @@ class <xsl:value-of select="$className"/>::Private : public QSharedData // static members -bool <xsl:value-of select="$className"/>::Private::cacheEnabled = false; +QAtomicInt <xsl:value-of select="$className"/>::Private::cacheEnabled(0); QMutex <xsl:value-of select="$className"/>::Private::cacheMutex; <xsl:if test="column[@name = 'id']"> QHash<qint64, <xsl:value-of select="$className"/> > <xsl:value-of select="$className"/>::Private::idCache; -- 2.14.1