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

List:       kde-commits
Subject:    KDE/kdelibs/phonon/platform_kde
From:       Matthias Kretz <kretz () kde ! org>
Date:       2008-04-10 19:22:00
Message-ID: 1207855320.069424.25435.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 795563 by mkretz:

backport 795562:
fix race condition:                                                                   \
                ~/KDE/src/playground-multimedia/phonon/phonon-pcmio/platform_kde
- if a FileJob reached the end
- then the backend requests a seek
- then the result signal is delivered
- the job was cleaned up, but the seek would never finish

 M  +9 -2      kiomediastream.cpp  


--- trunk/KDE/kdelibs/phonon/platform_kde/kiomediastream.cpp #795562:795563
@@ -134,11 +134,10 @@
     Q_ASSERT(d->kiojob);
     kDebug(600) << position << " = " << qulonglong(position);
     d->seeking = true;
+    d->seekPosition = position;
     if (d->open) {
         KIO::FileJob *filejob = qobject_cast<KIO::FileJob *>(d->kiojob);
         filejob->seek(position);
-    } else {
-        d->seekPosition = position;
     }
 }
 
@@ -194,7 +193,15 @@
         }
         // go to ErrorState - NormalError
         q->error(NormalError, kioErrorString);
+    } else if (seeking) {
+        open = false;
+        kiojob = 0;
+        endOfDataSent = false;
+        reading = false;
+        q->reset();
+        return;
     }
+    open = false;
     kiojob = 0;
     kDebug(600) << "KIO Job is done (will delete itself) and d->kiojob reset to 0";
     endOfDataSent = true;


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

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