Bug 1196558: Don't assert should output task not be dispatched. r=edwin a=ritu
authorJean-Yves Avenard <jyavenard@mozilla.com>
Tue, 25 Aug 2015 13:53:29 +1000
changeset 289093 e4230f6af3b3eab13f413fffeea9bf88c78874fa
parent 289092 c75497d877f2a5548fda113a93ee3d5bd8e82e5b
child 289094 0f4b50dab0f7a9117e961a9d1f76e7695ddebec0
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();