Bug 1196558: Don't assert should output task not be dispatched. r=edwin a=ritu
☠☠ backed out by 5bb661db5c6c ☠ ☠
authorJean-Yves Avenard <jyavenard@mozilla.com>
Tue, 25 Aug 2015 13:53:29 +1000
changeset 288970 744ce5c31af5b6121dd450ec25d32999d80b0090
parent 288969 0a9391fdb35077aa8f36ee9b7687e06ad80a05e7
child 288971 eef6993d896ed4ae6e19c3e1079b689edd6499cb
push id5067
push userraliiev@mozilla.com
push dateMon, 21 Sep 2015 14:04:52 +0000
treeherdermozilla-beta@14221ffe5b2f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersedwin, ritu
bugs1196558
milestone42.0a2
Bug 1196558: Don't assert should output task not be dispatched. r=edwin a=ritu We are in a racy situation where the task queue could start flushing after we've tested if it was being flushed. We do not care if the task isn't going to be dispatched as we want the frame to be dropped when that happens anyway.
dom/media/platforms/apple/AppleVDADecoder.h
--- a/dom/media/platforms/apple/AppleVDADecoder.h
+++ b/dom/media/platforms/apple/AppleVDADecoder.h
@@ -82,17 +82,17 @@ public:
   }
 
   void DispatchOutputTask(already_AddRefed<nsIRunnable> aTask)
   {
     nsCOMPtr<nsIRunnable> task = aTask;
     if (mIsShutDown || mIsFlushing) {
       return;
     }
-    mTaskQueue->Dispatch(task.forget());
+    mTaskQueue->Dispatch(task.forget(), AbstractThread::DontAssertDispatchSuccess);
   }
 
   nsresult OutputFrame(CFRefPtr<CVPixelBufferRef> aImage,
                        AppleFrameRef aFrameRef);
 
 protected:
   // Flush and Drain operation, always run
   virtual void ProcessFlush();