|
Rex Dieter |
adf30a |
From f5a0e3f1f4787b6a48880e42463ae38dce336a8f Mon Sep 17 00:00:00 2001
|
|
Rex Dieter |
adf30a |
From: Milian Wolff <mail@milianw.de>
|
|
Rex Dieter |
adf30a |
Date: Mon, 1 Dec 2014 11:36:31 +0100
|
|
Rex Dieter |
adf30a |
Subject: [PATCH 15/30] Use QMutexLocker instead of manual lock/unlock calls.
|
|
Rex Dieter |
adf30a |
|
|
Rex Dieter |
adf30a |
Just a minor cleanup patch, no change of behavior.
|
|
Rex Dieter |
adf30a |
---
|
|
Rex Dieter |
adf30a |
server/src/storage/entities-source.xsl | 17 +++++------------
|
|
Rex Dieter |
adf30a |
server/src/storage/entities.xsl | 4 +---
|
|
Rex Dieter |
adf30a |
2 files changed, 6 insertions(+), 15 deletions(-)
|
|
Rex Dieter |
adf30a |
|
|
Rex Dieter |
adf30a |
diff --git a/server/src/storage/entities-source.xsl b/server/src/storage/entities-source.xsl
|
|
Rex Dieter |
adf30a |
index 7090c31..05a8cb1 100644
|
|
Rex Dieter |
adf30a |
--- a/server/src/storage/entities-source.xsl
|
|
Rex Dieter |
adf30a |
+++ b/server/src/storage/entities-source.xsl
|
|
Rex Dieter |
adf30a |
@@ -125,14 +125,13 @@ void <xsl:value-of select="$className"/>::Private::addToCache( const
|
|
Rex Dieter |
adf30a |
{
|
|
Rex Dieter |
adf30a |
Q_ASSERT( cacheEnabled );
|
|
Rex Dieter |
adf30a |
Q_UNUSED( entry );
|
|
Rex Dieter |
adf30a |
- cacheMutex.lock();
|
|
Rex Dieter |
adf30a |
+ QMutexLocker lock(&cacheMutex);
|
|
Rex Dieter |
adf30a |
<xsl:if test="column[@name = 'id']">
|
|
Rex Dieter |
adf30a |
idCache.insert( entry.id(), entry );
|
|
Rex Dieter |
adf30a |
</xsl:if>
|
|
Rex Dieter |
adf30a |
<xsl:if test="column[@name = 'name']">
|
|
Rex Dieter |
adf30a |
nameCache.insert( entry.name(), entry );
|
|
Rex Dieter |
adf30a |
</xsl:if>
|
|
Rex Dieter |
adf30a |
- cacheMutex.unlock();
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
|
|
Rex Dieter |
adf30a |
|
|
Rex Dieter |
adf30a |
@@ -264,12 +263,10 @@ int <xsl:value-of select="$className"/>::count( const QString &column, const
|
|
Rex Dieter |
adf30a |
bool <xsl:value-of select="$className"/>::exists( qint64 id )
|
|
Rex Dieter |
adf30a |
{
|
|
Rex Dieter |
adf30a |
if ( Private::cacheEnabled ) {
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.lock();
|
|
Rex Dieter |
adf30a |
+ QMutexLocker lock(&Private::cacheMutex);
|
|
Rex Dieter |
adf30a |
if ( Private::idCache.contains( id ) ) {
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.unlock();
|
|
Rex Dieter |
adf30a |
return true;
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.unlock();
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
return count( idColumn(), id ) > 0;
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
@@ -278,12 +275,10 @@ bool <xsl:value-of select="$className"/>::exists( qint64 id )
|
|
Rex Dieter |
adf30a |
bool <xsl:value-of select="$className"/>::exists( const <xsl:value-of select="column[@name = 'name']/@type"/> &name )
|
|
Rex Dieter |
adf30a |
{
|
|
Rex Dieter |
adf30a |
if ( Private::cacheEnabled ) {
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.lock();
|
|
Rex Dieter |
adf30a |
+ QMutexLocker lock(&Private::cacheMutex);
|
|
Rex Dieter |
adf30a |
if ( Private::nameCache.contains( name ) ) {
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.unlock();
|
|
Rex Dieter |
adf30a |
return true;
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.unlock();
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
return count( nameColumn(), name ) > 0;
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
@@ -588,28 +583,26 @@ bool <xsl:value-of select="$className"/>::remove( qint64 id )
|
|
Rex Dieter |
adf30a |
void <xsl:value-of select="$className"/>::invalidateCache() const
|
|
Rex Dieter |
adf30a |
{
|
|
Rex Dieter |
adf30a |
if ( Private::cacheEnabled ) {
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.lock();
|
|
Rex Dieter |
adf30a |
+ QMutexLocker lock(&Private::cacheMutex);
|
|
Rex Dieter |
adf30a |
<xsl:if test="column[@name = 'id']">
|
|
Rex Dieter |
adf30a |
Private::idCache.remove( id() );
|
|
Rex Dieter |
adf30a |
</xsl:if>
|
|
Rex Dieter |
adf30a |
<xsl:if test="column[@name = 'name']">
|
|
Rex Dieter |
adf30a |
Private::nameCache.remove( name() );
|
|
Rex Dieter |
adf30a |
</xsl:if>
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.unlock();
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
|
|
Rex Dieter |
adf30a |
void <xsl:value-of select="$className"/>::invalidateCompleteCache()
|
|
Rex Dieter |
adf30a |
{
|
|
Rex Dieter |
adf30a |
if ( Private::cacheEnabled ) {
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.lock();
|
|
Rex Dieter |
adf30a |
+ QMutexLocker lock(&Private::cacheMutex);
|
|
Rex Dieter |
adf30a |
<xsl:if test="column[@name = 'id']">
|
|
Rex Dieter |
adf30a |
Private::idCache.clear();
|
|
Rex Dieter |
adf30a |
</xsl:if>
|
|
Rex Dieter |
adf30a |
<xsl:if test="column[@name = 'name']">
|
|
Rex Dieter |
adf30a |
Private::nameCache.clear();
|
|
Rex Dieter |
adf30a |
</xsl:if>
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.unlock();
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
|
|
Rex Dieter |
adf30a |
diff --git a/server/src/storage/entities.xsl b/server/src/storage/entities.xsl
|
|
Rex Dieter |
adf30a |
index 8b0ed03..a397544 100644
|
|
Rex Dieter |
adf30a |
--- a/server/src/storage/entities.xsl
|
|
Rex Dieter |
adf30a |
+++ b/server/src/storage/entities.xsl
|
|
Rex Dieter |
adf30a |
@@ -167,13 +167,11 @@ set<xsl:value-of select="$methodName"/>( <xsl:call-template name="argument"/> )
|
|
Rex Dieter |
adf30a |
<xsl:variable name="className"><xsl:value-of select="@name"/></xsl:variable>
|
|
Rex Dieter |
adf30a |
<xsl:if test="$cache != ''">
|
|
Rex Dieter |
adf30a |
if ( Private::cacheEnabled ) {
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.lock();
|
|
Rex Dieter |
adf30a |
+ QMutexLocker lock(&Private::cacheMutex);
|
|
Rex Dieter |
adf30a |
if ( Private::<xsl:value-of select="$cache"/>.contains( <xsl:value-of select="$key"/> ) ) {
|
|
Rex Dieter |
adf30a |
const <xsl:value-of select="$className"/> tmp = Private::<xsl:value-of select="$cache"/>.value( <xsl:value-of select="$key"/> );
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.unlock();
|
|
Rex Dieter |
adf30a |
return tmp;
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
- Private::cacheMutex.unlock();
|
|
Rex Dieter |
adf30a |
}
|
|
Rex Dieter |
adf30a |
</xsl:if>
|
|
Rex Dieter |
adf30a |
QSqlDatabase db = DataStore::self()->database();
|
|
Rex Dieter |
adf30a |
--
|
|
Rex Dieter |
adf30a |
2.1.0
|
|
Rex Dieter |
adf30a |
|