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

--HG--
extra : rebase_source : 56e1583a0090e683e92463536637d0f1460cb727
This commit is contained in:
Karl Tomlinson 2017-09-28 12:17:22 +13:00
Родитель b6f526449e
Коммит 4bd4041ca0
1 изменённых файлов: 3 добавлений и 4 удалений

Просмотреть файл

@ -1124,11 +1124,10 @@ MediaStreamGraph::AssertOnGraphThreadOrNotRunning() const
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
}