mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 16:25:38 +00:00
Backed out changeset 7c21a5f6881c (bug 1639547) for frequent cppunit failures. CLOSED TREE
This commit is contained in:
parent
9f1846ab4d
commit
1506527493
@ -4205,8 +4205,7 @@ bool GCRuntime::beginMarkPhase(JS::GCReason reason, AutoGCSession& session) {
|
||||
*/
|
||||
{
|
||||
AutoLockHelperThreadState helperLock;
|
||||
HelperThreadState().startHandlingCompressionTasks(
|
||||
helperLock, GlobalHelperThreadState::ScheduleCompressionTask::GC);
|
||||
HelperThreadState().startHandlingCompressionTasks(helperLock);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -1675,20 +1675,20 @@ bool GlobalHelperThreadState::canStartCompressionTask(
|
||||
}
|
||||
|
||||
void GlobalHelperThreadState::startHandlingCompressionTasks(
|
||||
const AutoLockHelperThreadState& lock, ScheduleCompressionTask schedule) {
|
||||
scheduleCompressionTasks(lock, schedule);
|
||||
const AutoLockHelperThreadState& lock) {
|
||||
scheduleCompressionTasks(lock);
|
||||
if (canStartCompressionTask(lock)) {
|
||||
notifyOne(PRODUCER, lock);
|
||||
}
|
||||
}
|
||||
|
||||
void GlobalHelperThreadState::scheduleCompressionTasks(
|
||||
const AutoLockHelperThreadState& lock, ScheduleCompressionTask schedule) {
|
||||
const AutoLockHelperThreadState& lock) {
|
||||
auto& pending = compressionPendingList(lock);
|
||||
auto& worklist = compressionWorklist(lock);
|
||||
|
||||
for (size_t i = 0; i < pending.length(); i++) {
|
||||
if (pending[i]->shouldStart() || schedule != ScheduleCompressionTask::GC) {
|
||||
if (pending[i]->shouldStart()) {
|
||||
// OOMing during appending results in the task not being scheduled
|
||||
// and deleted.
|
||||
Unused << worklist.append(std::move(pending[i]));
|
||||
@ -2369,8 +2369,7 @@ void js::RunPendingSourceCompressions(JSRuntime* runtime) {
|
||||
return;
|
||||
}
|
||||
|
||||
HelperThreadState().startHandlingCompressionTasks(
|
||||
lock, GlobalHelperThreadState::ScheduleCompressionTask::API);
|
||||
HelperThreadState().startHandlingCompressionTasks(lock);
|
||||
|
||||
// Wait for all in-process compression tasks to complete.
|
||||
while (!HelperThreadState().compressionWorklist(lock).empty()) {
|
||||
|
@ -294,18 +294,14 @@ class GlobalHelperThreadState {
|
||||
bool canStartCompressionTask(const AutoLockHelperThreadState& lock);
|
||||
bool canStartGCParallelTask(const AutoLockHelperThreadState& lock);
|
||||
|
||||
enum class ScheduleCompressionTask { GC, API };
|
||||
|
||||
// Used by a major GC to signal processing enqueued compression tasks.
|
||||
void startHandlingCompressionTasks(const AutoLockHelperThreadState&,
|
||||
ScheduleCompressionTask schedule);
|
||||
void startHandlingCompressionTasks(const AutoLockHelperThreadState&);
|
||||
|
||||
jit::IonCompileTask* highestPriorityPendingIonCompile(
|
||||
const AutoLockHelperThreadState& lock);
|
||||
|
||||
private:
|
||||
void scheduleCompressionTasks(const AutoLockHelperThreadState&,
|
||||
ScheduleCompressionTask schedule);
|
||||
void scheduleCompressionTasks(const AutoLockHelperThreadState&);
|
||||
|
||||
UniquePtr<ParseTask> finishParseTaskCommon(JSContext* cx, ParseTaskKind kind,
|
||||
JS::OffThreadToken* token);
|
||||
|
Loading…
Reference in New Issue
Block a user