TaskDispatcher& TaskQueue::TailDispatcher() { MOZ_ASSERT(IsCurrentThreadIn()); MOZ_ASSERT(mTailDispatcher); return *mTailDispatcher; }
virtual TaskDispatcher& TailDispatcher() override { MOZ_ASSERT(this == sMainThread); // See the comment in the constructor. MOZ_ASSERT(IsCurrentThreadIn()); if (!mTailDispatcher.isSome()) { mTailDispatcher.emplace(/* aIsTailDispatcher = */ true); nsCOMPtr<nsIRunnable> event = NS_NewRunnableMethod(this, &XPCOMThreadWrapper::FireTailDispatcher); nsContentUtils::RunInStableState(event.forget()); } return mTailDispatcher.ref(); }
virtual TaskDispatcher& TailDispatcher() override { MOZ_ASSERT(this == sMainThread); // See the comment in the constructor. MOZ_ASSERT(IsCurrentThreadIn()); if (!mTailDispatcher.isSome()) { mTailDispatcher.emplace(/* aIsTailDispatcher = */ true); nsCOMPtr<nsIRunnable> event = NS_NewRunnableMethod(this, &XPCOMThreadWrapper::FireTailDispatcher); nsCOMPtr<nsIAppShell> appShell = do_GetService(kAppShellCID); appShell->RunInStableState(event); } return mTailDispatcher.ref(); }