Backed out changeset 7c21a5f6881c (bug 1639547) for frequent cppunit failures. CLOSED TREE

This commit is contained in:
Cosmin Sabou 2020-05-21 23:45:39 +03:00
parent 9f1846ab4d
commit 1506527493
3 changed files with 8 additions and 14 deletions

View File

@ -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;

View File

@ -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()) {

View File

@ -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);