[kdelibs] Nepomuk::Resource[Data|Watcher] thread-safety (kde#295474)
Rex Dieter
rdieter at fedoraproject.org
Tue Mar 13 11:52:22 UTC 2012
commit 756eaa3170df8bf59fa741d4c5235a80920446cf
Author: Rex Dieter <rdieter at fedoraproject.org>
Date: Tue Mar 13 06:54:05 2012 -0500
Nepomuk::Resource[Data|Watcher] thread-safety (kde#295474)
kdelibs-4.8.1-nepomuk_threading.patch | 52 +++++++++++++++++++++++++++++++++
kdelibs.spec | 11 ++++++-
2 files changed, 62 insertions(+), 1 deletions(-)
---
diff --git a/kdelibs-4.8.1-nepomuk_threading.patch b/kdelibs-4.8.1-nepomuk_threading.patch
new file mode 100644
index 0000000..145472d
--- /dev/null
+++ b/kdelibs-4.8.1-nepomuk_threading.patch
@@ -0,0 +1,52 @@
+diff --git a/nepomuk/core/resourcedata.cpp b/nepomuk/core/resourcedata.cpp
+index abe55ea..e65e66e 100644
+--- a/nepomuk/core/resourcedata.cpp
++++ b/nepomuk/core/resourcedata.cpp
+@@ -175,7 +175,7 @@ void Nepomuk::ResourceData::resetAll( bool isDelete )
+ if( !m_uri.isEmpty() ) {
+ m_rm->m_initializedData.remove( m_uri );
+ if( m_rm->m_watcher && m_addedToWatcher ) {
+- m_rm->m_watcher->removeResource(Resource::fromResourceUri(m_uri));
++ QMetaObject::invokeMethod(m_rm->m_watcher, "removeResource", Qt::AutoConnection, Q_ARG(Nepomuk::Resource, Resource::fromResourceUri(m_uri)));
+ m_addedToWatcher = false;
+ }
+ }
+@@ -394,15 +394,16 @@ bool Nepomuk::ResourceData::load()
+
+ if(!m_rm->m_watcher) {
+ m_rm->m_watcher = new ResourceWatcher(m_rm->m_manager);
++ m_rm->m_watcher->moveToThread(m_rm->m_manager->thread());
+ QObject::connect( m_rm->m_watcher, SIGNAL(propertyAdded(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)),
+ m_rm->m_manager, SLOT(slotPropertyAdded(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)) );
+ QObject::connect( m_rm->m_watcher, SIGNAL(propertyRemoved(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)),
+ m_rm->m_manager, SLOT(slotPropertyRemoved(Nepomuk::Resource, Nepomuk::Types::Property, QVariant)) );
+ m_rm->m_watcher->addResource( Nepomuk::Resource::fromResourceUri(m_uri) );
+- m_rm->m_watcher->start();
++ QMetaObject::invokeMethod(m_rm->m_watcher, "start", Qt::AutoConnection);
+ }
+ else {
+- m_rm->m_watcher->addResource( Nepomuk::Resource::fromResourceUri(m_uri) );
++ QMetaObject::invokeMethod(m_rm->m_watcher, "addResource", Qt::AutoConnection, Q_ARG(Nepomuk::Resource, Nepomuk::Resource::fromResourceUri(m_uri)) );
+ }
+ m_addedToWatcher = true;
+
+diff --git a/nepomuk/core/resourcewatcher.h b/nepomuk/core/resourcewatcher.h
+index 06b9622..92b12f5 100644
+--- a/nepomuk/core/resourcewatcher.h
++++ b/nepomuk/core/resourcewatcher.h
+@@ -93,6 +93,7 @@ namespace Nepomuk {
+ */
+ virtual ~ResourceWatcher();
+
++ public Q_SLOTS:
+ /**
+ * \brief Add a type to be watched.
+ *
+@@ -204,7 +205,6 @@ namespace Nepomuk {
+ */
+ QList<Types::Property> properties() const;
+
+- public Q_SLOTS:
+ /**
+ * \brief Start the signalling of changes.
+ *
diff --git a/kdelibs.spec b/kdelibs.spec
index 5243503..6ce4503 100644
--- a/kdelibs.spec
+++ b/kdelibs.spec
@@ -20,7 +20,7 @@
Summary: KDE Libraries
Version: 4.8.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Name: kdelibs
Epoch: 6
@@ -129,9 +129,14 @@ Patch52: kdelibs-4.7.4-SOLID_UPNP.patch
# add s390/s390x support in kjs
Patch53: kdelibs-4.7.2-kjs-s390.patch
+## upstream
# don't set rpath on multiarch dirs, https://git.reviewboard.kde.org/r/103422
Patch101: kdelibs-4.8.0-cmake_cxx_implicit_link_directories.patch
+# Nepomuk::Resource[Data|Watcher] thread-safety
+# https://bugs.kde.org/show_bug.cgi?id=295474
+Patch102: kdelibs-4.8.1-nepomuk_threading.patch
+
## security fix
# Not Upstreamed? why not ? -- Rex
Patch200: kdelibs-4.3.1-CVE-2009-2702.patch
@@ -321,6 +326,7 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
# upstream patches
%patch101 -p1 -b .cmake_cxx_implicit_link_directories
+%patch102 -p1 -b .nepomuk_threading
# security fixes
%patch200 -p1 -b .CVE-2009-2702
@@ -574,6 +580,9 @@ rm -rf %{buildroot}
%changelog
+* Tue Mar 13 2012 Rex Dieter <rdieter at fedoraproject.org> 6:4.8.1-2
+- Nepomuk::Resource[Data|Watcher] thread-safety (kde#295474)
+
* Mon Mar 05 2012 Radek Novacek <rnovacek at redhat.com> 6:4.8.1-1
- 4.8.1
- Drop upstreamed patches
More information about the scm-commits
mailing list