bug 1406831 tighten AssertOnGraphThreadOrNotRunning() to not accept graph thread after mDetectedNotRunning r?pehrsons
This also permits setting mDriver to null after mDetectedNotRunning, which is
useful for fixing
bug 1406830.
MozReview-Commit-ID: EEgAxqPQPRI
--- a/dom/media/MediaStreamGraph.cpp
+++ b/dom/media/MediaStreamGraph.cpp
@@ -1119,21 +1119,20 @@ void
MediaStreamGraph::AssertOnGraphThreadOrNotRunning() const
{
// either we're on the right thread (and calling CurrentDriver() is safe),
// or we're going to assert anyways, so don't cross-check CurrentDriver
#ifdef DEBUG
MediaStreamGraphImpl const * graph =
static_cast<MediaStreamGraphImpl const *>(this);
// if all the safety checks fail, assert we own the monitor
- if (!graph->mDriver->OnThread()) {
- if (!(graph->mDetectedNotRunning &&
- NS_IsMainThread())) {
+ if (!(graph->mDetectedNotRunning ?
+ NS_IsMainThread() : graph->mDriver->OnThread()))
+ {
graph->mMonitor.AssertCurrentThreadOwns();
- }
}
#endif
}
bool
MediaStreamGraphImpl::ShouldUpdateMainThread()
{
if (mRealtime) {