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

List:       kde-commits
Subject:    [kdelibs/KDE/4.9] solid/solid/backends/udisks: use SOLID_GLOBAL_STATIC for the mutex
From:       Lukas Tinkl <lukas () kde ! org>
Date:       2012-09-19 8:11:59
Message-ID: 20120919081159.05C1AA6094 () git ! kde ! org
[Download RAW message or body]

Git commit c62993b22ac7983db0c7b37f83e50999b699dfa0 by Lukas Tinkl.
Committed on 19/09/2012 at 10:10.
Pushed by lukas into branch 'KDE/4.9'.

use SOLID_GLOBAL_STATIC for the mutex

CCBUG: 264487

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

http://commits.kde.org/kdelibs/c62993b22ac7983db0c7b37f83e50999b699dfa0

diff --git a/solid/solid/backends/udisks/udisksopticaldisc.cpp \
b/solid/solid/backends/udisks/udisksopticaldisc.cpp index e50f188..8eb3588 100644
--- a/solid/solid/backends/udisks/udisksopticaldisc.cpp
+++ b/solid/solid/backends/udisks/udisksopticaldisc.cpp
@@ -29,11 +29,11 @@
 #include <QtCore/QMutexLocker>
 
 #include "udisksopticaldisc.h"
+#include "soliddefs_p.h"
 
-namespace {
-    QMap<QString, Solid::OpticalDisc::ContentTypes> cache;
-    QMutex cacheLock;
-}
+typedef QMap<QString, 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 QString & \
device_file) @@ -241,12 +241,12 @@ Solid::OpticalDisc::ContentTypes \
OpticalDisc::availableContent() const  }
 
     if (m_needsReprobe) {
-        QMutexLocker lock(&cacheLock);
+        QMutexLocker lock(cacheLock);
 
         QString deviceFile = m_device->prop("DeviceFile").toString();
 
-        if (cache.contains(deviceFile)) {
-            m_cachedContent = cache[deviceFile];
+        if (cache->contains(deviceFile)) {
+            m_cachedContent = cache->value(deviceFile);
             m_needsReprobe = false;
             return m_cachedContent;
         }
@@ -265,7 +265,7 @@ Solid::OpticalDisc::ContentTypes OpticalDisc::availableContent() \
const  
         m_needsReprobe = false;
 
-        cache[deviceFile] = m_cachedContent;
+        cache->insert(deviceFile, m_cachedContent);
     }
 
     return m_cachedContent;
@@ -273,8 +273,8 @@ Solid::OpticalDisc::ContentTypes OpticalDisc::availableContent() \
const  
 void OpticalDisc::slotChanged()
 {
-    QMutexLocker lock(&cacheLock);
+    QMutexLocker lock(cacheLock);
     m_needsReprobe = true;
     m_cachedContent = Solid::OpticalDisc::NoContent;
-    cache.remove(m_device->prop("DeviceFile").toString());
+    cache->remove(m_device->prop("DeviceFile").toString());
 }


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

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