зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1594015: Ensure that threads with odd ProcessNextEvent loops get correct event delays r=froydnj
Socket Thread and Worker Threads use custom event loops and don't wait in calls to ProcessNextEvent all the time; this can lead to odd Responsiveness numbers. Differential Revision: https://phabricator.services.mozilla.com/D51835 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
4be7858359
Коммит
a42777ee14
|
@ -2764,6 +2764,12 @@ void WorkerPrivate::DoRunLoop(JSContext* aCx) {
|
|||
!(debuggerRunnablesPending = !mDebuggerQueue.IsEmpty()) &&
|
||||
!(normalRunnablesPending = NS_HasPendingEvents(mThread)) &&
|
||||
!(mStatus != Running && !HasActiveWorkerRefs())) {
|
||||
// We pop out to this loop when there are no pending events.
|
||||
// If we don't reset these, we may not re-enter ProcessNextEvent()
|
||||
// until we have events to process, and it may seem like we have
|
||||
// an event running for a very long time.
|
||||
mThread->SetRunningEventDelay(TimeDuration(), TimeStamp());
|
||||
|
||||
WaitForWorkerEvents();
|
||||
}
|
||||
|
||||
|
|
|
@ -961,6 +961,11 @@ nsSocketTransportService::Run() {
|
|||
startOfNextIteration = TimeStamp::NowLoRes();
|
||||
}
|
||||
pollDuration = nullptr;
|
||||
// We pop out to this loop when there are no pending events.
|
||||
// If we don't reset these, we may not re-enter ProcessNextEvent()
|
||||
// until we have events to process, and it may seem like we have
|
||||
// an event running for a very long time.
|
||||
mRawThread->SetRunningEventDelay(TimeDuration(), TimeStamp());
|
||||
|
||||
do {
|
||||
if (Telemetry::CanRecordPrereleaseData()) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче