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

Unified Diff: runtime/vm/isolate.cc

Issue 2133823002: Improve hot reload test mode (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: rmacnak review Created 4 years, 5 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 | « runtime/vm/isolate.h ('k') | tests/corelib/corelib.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/isolate.cc
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index d43f494ad172c2c8e08057f2c6531c572a31cffc..85916601982b363f9fd6887461951e51519ae322 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -53,9 +53,14 @@ namespace dart {
DECLARE_FLAG(bool, print_metrics);
DECLARE_FLAG(bool, timing);
DECLARE_FLAG(bool, trace_service);
-DECLARE_FLAG(bool, trace_reload);
DECLARE_FLAG(bool, warn_on_pause_with_no_debugger);
+
+// Reload flags.
DECLARE_FLAG(bool, check_reloaded);
+DECLARE_FLAG(int, reload_every);
+DECLARE_FLAG(bool, reload_every_back_off);
+DECLARE_FLAG(bool, trace_reload);
+
NOT_IN_PRODUCT(
static void CheckedModeHandler(bool value) {
@@ -833,6 +838,7 @@ Isolate::Isolate(const Dart_IsolateFlags& api_flags)
spawn_count_(0),
has_attempted_reload_(false),
no_reload_scope_depth_(0),
+ reload_every_n_stack_overflow_checks_(FLAG_reload_every),
reload_context_(NULL) {
NOT_IN_PRODUCT(FlagsCopyFrom(api_flags));
// TODO(asiva): A Thread is not available here, need to figure out
@@ -1643,6 +1649,21 @@ void Isolate::StopBackgroundCompiler() {
}
+void Isolate::MaybeIncreaseReloadEveryNStackOverflowChecks() {
+ if (FLAG_reload_every_back_off) {
+ if (reload_every_n_stack_overflow_checks_ < 5000) {
+ reload_every_n_stack_overflow_checks_ += 100;
+ } else {
+ reload_every_n_stack_overflow_checks_ *= 2;
+ }
+ // Cap the value.
+ if (reload_every_n_stack_overflow_checks_ > 1000000) {
+ reload_every_n_stack_overflow_checks_ = 1000000;
+ }
+ }
+}
+
+
void Isolate::Shutdown() {
ASSERT(this == Isolate::Current());
StopBackgroundCompiler();
« no previous file with comments | « runtime/vm/isolate.h ('k') | tests/corelib/corelib.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698