summaryrefslogtreecommitdiffstats
path: root/dom/media/MediaStreamGraph.cpp
diff options
context:
space:
mode:
authorRandell Jesup <rjesup@jesup.org>2017-01-13 13:54:20 -0500
committerwolfbeast <mcwerewolf@gmail.com>2018-04-19 11:59:36 +0200
commit8c9b42d0b95bafd3e4dacdc1ab21af4066cfcbd9 (patch)
tree403e1974e55b765c1a05ea9cbc0371f0890091fc /dom/media/MediaStreamGraph.cpp
parente7189e33f533f9b974b22c2110b522a13bc4c7f6 (diff)
downloadUXP-8c9b42d0b95bafd3e4dacdc1ab21af4066cfcbd9.tar
UXP-8c9b42d0b95bafd3e4dacdc1ab21af4066cfcbd9.tar.gz
UXP-8c9b42d0b95bafd3e4dacdc1ab21af4066cfcbd9.tar.lz
UXP-8c9b42d0b95bafd3e4dacdc1ab21af4066cfcbd9.tar.xz
UXP-8c9b42d0b95bafd3e4dacdc1ab21af4066cfcbd9.zip
Bug 1452416 - Release GraphDrivers outside of StableState runnable to avoid spinning the event queue. r=smaug, r=padenot, a=RyanVM
--HG-- extra : source : c90ec782d481f05f5848f171a945cfc5bcf5b0ca
Diffstat (limited to 'dom/media/MediaStreamGraph.cpp')
-rw-r--r--dom/media/MediaStreamGraph.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/dom/media/MediaStreamGraph.cpp b/dom/media/MediaStreamGraph.cpp
index 94cafa029..e2934cbb2 100644
--- a/dom/media/MediaStreamGraph.cpp
+++ b/dom/media/MediaStreamGraph.cpp
@@ -1715,6 +1715,10 @@ MediaStreamGraphImpl::RunInStableState(bool aSourceIsMSG)
RefPtr<GraphDriver> driver = CurrentDriver();
MonitorAutoUnlock unlock(mMonitor);
driver->Start();
+ // It's not safe to Shutdown() a thread from StableState, and
+ // releasing this may shutdown a SystemClockDriver thread.
+ // Proxy the release to outside of StableState.
+ NS_ReleaseOnMainThread(driver.forget(), true); // always proxy
}
}