[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: Re: KDE/kdebase/apps/dolphin/src/panels/information
From: "Peter Penz" <peter.penz () gmx ! at>
Date: 2009-04-28 10:28:44
Message-ID: 20090428102844.200780 () gmx ! net
[Download RAW message or body]
> SVN commit 960318 by trueg:
>
> Gracefully end the metadata loading thread. This should fix
> BUG: 190165
It seems m_canceled is never initialized properly...
>
>
> M +12 -0 metadatawidget.cpp
>
>
> ---
> trunk/KDE/kdebase/apps/dolphin/src/panels/information/metadatawidget.cpp #960317:960318
> @@ -87,6 +87,7 @@
> {
> public:
> LoadFilesThread(SharedData* sharedData, QMutex* mutex);
> + ~LoadFilesThread();
> void setFiles(const KUrl::List& urls);
> virtual void run();
>
> @@ -94,6 +95,7 @@
> SharedData* m_sharedData;
> QMutex* m_mutex;
> KUrl::List m_urls;
> + bool m_canceled;
> };
>
> LoadFilesThread* loadFilesThread;
> @@ -115,6 +117,14 @@
> {
> }
>
> +MetaDataWidget::Private::LoadFilesThread::~LoadFilesThread()
> +{
> + // this thread may very well be deleted during execution. We need
> + // to protect it from crashes here
> + m_canceled = true;
> + wait();
> +}
> +
> void MetaDataWidget::Private::LoadFilesThread::setFiles(const KUrl::List&
> urls)
> {
> QMutexLocker locker( m_mutex );
> @@ -133,6 +143,8 @@
> unsigned int rating = 0;
> QString comment;
> Q_FOREACH( const KUrl &url, urls ) {
> + if ( m_canceled )
> + return;
> Nepomuk::Resource file( url, Soprano::Vocabulary::Xesam::File()
> );
> files.insert( url, file );
> fileRes.append( file );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic