Bug 1395017. P1 - assert ResourceStreamIterator should either run in the main thread or with the lock held. draft
authorJW Wang <jwwang@mozilla.com>
Wed, 30 Aug 2017 11:26:01 +0800
changeset 660829 d0d593a9c33aaa2c57c51bca3e97dea3aac86c8b
parent 660738 37b95547f0d27565452136d16b2df2857be840f6
child 660830 ba9b489bad52c22e6931aeb8b7a1b7aa3836d246
child 660833 6a372c79c89af7407a34a7f76666d387b485aa64
push id78566
push userjwwang@mozilla.com
push dateThu, 07 Sep 2017 17:00:42 +0000
bugs1395017
milestone57.0a1
Bug 1395017. P1 - assert ResourceStreamIterator should either run in the main thread or with the lock held. MozReview-Commit-ID: Jm9alyQFFtA
dom/media/MediaCache.cpp
--- a/dom/media/MediaCache.cpp
+++ b/dom/media/MediaCache.cpp
@@ -229,16 +229,19 @@ public:
   class ResourceStreamIterator
   {
   public:
     ResourceStreamIterator(MediaCache* aMediaCache, int64_t aResourceID)
       : mMediaCache(aMediaCache)
       , mResourceID(aResourceID)
       , mNext(0)
     {
+      MOZ_ASSERT(
+        NS_IsMainThread() ||
+        (aMediaCache->GetReentrantMonitor().AssertCurrentThreadIn(), true));
     }
     MediaCacheStream* Next()
     {
       while (mNext < mMediaCache->mStreams.Length()) {
         MediaCacheStream* stream = mMediaCache->mStreams[mNext];
         ++mNext;
         if (stream->GetResourceID() == mResourceID && !stream->IsClosed())
           return stream;