How should sCCRunner and sICCRunner interact?
Categories
(Core :: DOM: Core & HTML, enhancement)
Tracking
()
Tracking | Status | |
---|---|---|
firefox67 | --- | fixed |
People
(Reporter: bzbarsky, Assigned: smaug)
References
Details
Attachments
(1 file)
Before the patch for bug 1377131 the code in nsJSContext::RunNextCollectorTimer looked like this:
if (sCCRunner) {
if (ReadyToTriggerExpensiveCollectorTimer()) {
CCRunnerFired(TimeStamp());
}
return;
}
if (sICCRunner) {
ICCRunnerFired(TimeStamp());
return;
}
but after that bug (and on tip) it looks like this:
if (sCCRunner) {
sCCRunner->SetDeadline(aDeadline);
runnable = sCCRunner;
}
if (sICCRunner) {
sICCRunner->SetDeadline(aDeadline);
runnable = sICCRunner;
}
if (runnable) {
runnable->Run();
}
In particular, of both sCCRunner and sICCRunner are non-null, we used to do CCRunnerFired() and return. But now we'll run sICCRunner. Is that an intended change in behavior?
Assignee | ||
Comment 1•6 years ago
|
||
sICCRunner should be null when sCCRunner is non-null.
sCCRunner does all the forget skippable handling, and eventually may trigger iCC, which then
sets sCCRunner to null and set sICCRunner to non-null
https://searchfox.org/mozilla-central/rev/dc0adc07db3df9431a0876156f50c65d580010cb/dom/base/nsJSEnvironment.cpp#1534-1548.
![]() |
Reporter | |
Comment 2•6 years ago
|
||
sICCRunner should be null when sCCRunner is non-null.
Is that worth asserting?
Assignee | ||
Comment 3•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 4•6 years ago
|
||
Hopefully the assertion doesn't fire
https://treeherder.mozilla.org/#/jobs?repo=try&revision=e9d473b320bd0b18db3fd9e5b8bcdf28f9196fed
Comment 6•6 years ago
|
||
bugherder |
Updated•6 years ago
|
Updated•6 years ago
|
Description
•