[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdelibs/KDE/4.10] solid/solid/backends/udisks2: use SOLID_GLOBAL_STATIC for the mutex
From:       Lukas Tinkl <lukas () kde ! org>
Date:       2012-09-19 8:21:20
Message-ID: 20120919082120.78219A6094 () git ! kde ! org
[Download RAW message or body]

Git commit 3f07cb578e2c62a498f313cbc7b0249d0c841abd by Lukas Tinkl.
Committed on 19/09/2012 at 10:20.
Pushed by lukas into branch 'KDE/4.10'.

use SOLID_GLOBAL_STATIC for the mutex

CCBUG: 261552

M  +10   -10   solid/solid/backends/udisks2/udisksopticaldisc.cpp

http://commits.kde.org/kdelibs/3f07cb578e2c62a498f313cbc7b0249d0c841abd

diff --git a/solid/solid/backends/udisks2/udisksopticaldisc.cpp \
b/solid/solid/backends/udisks2/udisksopticaldisc.cpp index 45787fa..dc5256d 100644
--- a/solid/solid/backends/udisks2/udisksopticaldisc.cpp
+++ b/solid/solid/backends/udisks2/udisksopticaldisc.cpp
@@ -33,11 +33,11 @@
 
 #include "udisks2.h"
 #include "udisksopticaldisc.h"
+#include "soliddefs_p.h"
 
-namespace {
-    QMap<QByteArray, Solid::OpticalDisc::ContentTypes> cache;
-    QMutex cacheLock;
-}
+typedef QMap<QByteArray, Solid::OpticalDisc::ContentTypes> ContentTypesCache;
+SOLID_GLOBAL_STATIC(ContentTypesCache, cache)
+SOLID_GLOBAL_STATIC(QMutex, cacheLock)
 
 // inspired by http://cgit.freedesktop.org/hal/tree/hald/linux/probing/probe-volume.c
  static Solid::OpticalDisc::ContentType advancedDiscDetect(const QByteArray & \
device_file) @@ -251,12 +251,12 @@ Solid::OpticalDisc::ContentTypes \
OpticalDisc::availableContent() const  }
 
     if (m_needsReprobe) {
-        QMutexLocker lock(&cacheLock);
+        QMutexLocker lock(cacheLock);
 
         const QByteArray deviceFile = m_device->prop("Device").toByteArray();
 
-        if (cache.contains(deviceFile)) {
-            m_cachedContent = cache[deviceFile];
+        if (cache->contains(deviceFile)) {
+            m_cachedContent = cache->value(deviceFile);
             m_needsReprobe = false;
             return m_cachedContent;
         }
@@ -273,7 +273,7 @@ Solid::OpticalDisc::ContentTypes OpticalDisc::availableContent() \
const  m_cachedContent |= Solid::OpticalDisc::Audio;
 
         m_needsReprobe = false;
-        cache[deviceFile] = m_cachedContent;
+        cache->insert(deviceFile, m_cachedContent);
     }
 
     return m_cachedContent;
@@ -284,10 +284,10 @@ void OpticalDisc::slotDrivePropertiesChanged(const QString \
&ifaceName, const QVa  Q_UNUSED(ifaceName);
 
     if (changedProps.keys().contains("Media") || invalidatedProps.contains("Media")) \
                {
-        QMutexLocker lock(&cacheLock);
+        QMutexLocker lock(cacheLock);
         m_needsReprobe = true;
         m_cachedContent = Solid::OpticalDisc::NoContent;
-        cache.remove(m_device->prop("Device").toByteArray());
+        cache->remove(m_device->prop("Device").toByteArray());
     }
 }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic