[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/nepomuk/core
From: Sebastian Trueg <sebastian () trueg ! de>
Date: 2010-09-08 15:14:53
Message-ID: 20100908151453.1341EAC857 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1173076 by trueg:
Fixed a deadlock when one thread is listing resources while the other one is changing \
one of them
M +4 -4 resourcemanager.cpp
--- trunk/KDE/kdelibs/nepomuk/core/resourcemanager.cpp #1173075:1173076
@@ -107,12 +107,12 @@
QList<Nepomuk::ResourceData*> \
Nepomuk::ResourceManagerPrivate::allResourceDataOfType( const QUrl& type ) {
- QMutexLocker lock( &mutex );
-
QList<ResourceData*> l;
if( !type.isEmpty() ) {
+ mutex.lock();
QSet<ResourceData*> rdl = m_uriKickoffData.values().toSet();
+ mutex.unlock();
for( QSet<ResourceData*>::iterator rdIt = rdl.begin();
rdIt != rdl.end(); ++rdIt ) {
ResourceData* rd = *rdIt;
@@ -133,15 +133,15 @@
QList<Nepomuk::ResourceData*> \
Nepomuk::ResourceManagerPrivate::allResourceDataWithProperty( const QUrl& uri, const \
Variant& v ) {
- QMutexLocker lock( &mutex );
-
QList<ResourceData*> l;
//
// We need to cache m_uriKickoffData since it might be changed
// in the loop by ResourceData::load()
//
+ mutex.lock();
QSet<ResourceData*> rdl = m_uriKickoffData.values().toSet();
+ mutex.unlock();
//
// make sure none of the ResourceData objects are deleted by ResourceData::load \
below
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic