Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1078)

Unified Diff: runtime/vm/compiler.cc

Issue 2363823002: Fix for issue 27380 - VM stuck in deadlock with background finalization and background compiler thr… (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/vm/exceptions.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/compiler.cc
diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc
index 93898adc5c69c5b7c51ea6b17078374d2fa7096a..8ff7de470c0f23cf86e50d76e400e4b2adc10076 100644
--- a/runtime/vm/compiler.cc
+++ b/runtime/vm/compiler.cc
@@ -1316,9 +1316,12 @@ static RawError* CompileFunctionHelper(CompilationPipeline* pipeline,
// We got an error during compilation.
error = thread->sticky_error();
thread->clear_sticky_error();
- // The non-optimizing compiler should not bail out.
- ASSERT(error.IsLanguageError() &&
- LanguageError::Cast(error).kind() != Report::kBailout);
+ // The non-optimizing compiler can get an unhandled exception
+ // due to OOM or Stack overflow errors, it should not however
+ // bail out.
+ ASSERT(error.IsUnhandledException() ||
+ (error.IsLanguageError() &&
+ LanguageError::Cast(error).kind() != Report::kBailout));
return error.raw();
}
}
@@ -1339,11 +1342,13 @@ static RawError* CompileFunctionHelper(CompilationPipeline* pipeline,
if (FLAG_disassemble && FlowGraphPrinter::ShouldPrint(function)) {
SafepointOperationScope safepoint_scope(thread);
+ NoHeapGrowthControlScope no_growth_control;
Disassembler::DisassembleCode(function, optimized);
} else if (FLAG_disassemble_optimized &&
optimized &&
FlowGraphPrinter::ShouldPrint(function)) {
SafepointOperationScope safepoint_scope(thread);
+ NoHeapGrowthControlScope no_growth_control;
Disassembler::DisassembleCode(function, true);
}
« no previous file with comments | « no previous file | runtime/vm/exceptions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698