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

Unified Diff: runtime/vm/isolate.h

Issue 2006793002: VM: Fix race between background compiler and guarded cid update. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: rework how we invalidate background compiled code Created 4 years, 7 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/compiler.cc ('k') | runtime/vm/isolate.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/isolate.h
diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h
index b418fd6fec65f34c19cb88c74d6a6411a11fd56c..5c219ccb154c934041f5477051d9977863f5db82 100644
--- a/runtime/vm/isolate.h
+++ b/runtime/vm/isolate.h
@@ -560,14 +560,6 @@ class Isolate : public BaseIsolate {
static const intptr_t kInvalidGen = 0;
- void IncrFieldInvalidationGen() {
- AtomicOperations::IncrementBy(&field_invalidation_gen_, 1);
- if (field_invalidation_gen_ == kInvalidGen) {
- AtomicOperations::IncrementBy(&field_invalidation_gen_, 1);
- }
- }
- intptr_t field_invalidation_gen() const { return field_invalidation_gen_; }
-
void IncrLoadingInvalidationGen() {
AtomicOperations::IncrementBy(&loading_invalidation_gen_, 1);
if (loading_invalidation_gen_ == kInvalidGen) {
@@ -578,14 +570,6 @@ class Isolate : public BaseIsolate {
return AtomicOperations::LoadRelaxedIntPtr(&loading_invalidation_gen_);
}
- // Used by mutator thread to notify background compiler which fields
- // triggered code invalidation.
- void AddDisablingField(const Field& field);
- // Returns Field::null() if none available in the list. Can be called
- // only from background compiler and while mutator thread is at safepoint.
- RawField* GetDisablingField();
- void ClearDisablingFieldList();
-
// Used by background compiler which field became boxed and must trigger
// deoptimization in the mutator thread.
void AddDeoptimizingBoxedField(const Field& field);
@@ -805,17 +789,13 @@ class Isolate : public BaseIsolate {
// Invalidation generations; used to track events occuring in parallel
// to background compilation. The counters may overflow, which is OK
// since we check for equality to detect if an event occured.
- intptr_t field_invalidation_gen_;
intptr_t loading_invalidation_gen_;
intptr_t top_level_parsing_count_;
- // Protect access to boxed_field_list_ and disabling_field_list_.
+ // Protect access to boxed_field_list_.
Mutex* field_list_mutex_;
// List of fields that became boxed and that trigger deoptimization.
RawGrowableObjectArray* boxed_field_list_;
- // List of fields that were disabling code while background compiler
- // was running.
- RawGrowableObjectArray* disabling_field_list_;
// This guards spawn_count_. An isolate cannot complete shutdown and be
// destroyed while there are child isolates in the midst of a spawn.
« no previous file with comments | « runtime/vm/compiler.cc ('k') | runtime/vm/isolate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698