OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_ISOLATE_H_ | 5 #ifndef VM_ISOLATE_H_ |
6 #define VM_ISOLATE_H_ | 6 #define VM_ISOLATE_H_ |
7 | 7 |
8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "vm/atomic.h" | 10 #include "vm/atomic.h" |
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
518 AtomicOperations::IncrementBy(&loading_invalidation_gen_, 1); | 518 AtomicOperations::IncrementBy(&loading_invalidation_gen_, 1); |
519 } | 519 } |
520 } | 520 } |
521 intptr_t loading_invalidation_gen() { | 521 intptr_t loading_invalidation_gen() { |
522 return AtomicOperations::LoadRelaxedIntPtr(&loading_invalidation_gen_); | 522 return AtomicOperations::LoadRelaxedIntPtr(&loading_invalidation_gen_); |
523 } | 523 } |
524 | 524 |
525 // Used by mutator thread to notify background compiler which fields | 525 // Used by mutator thread to notify background compiler which fields |
526 // triggered code invalidation. | 526 // triggered code invalidation. |
527 void AddDisablingField(const Field& field); | 527 void AddDisablingField(const Field& field); |
528 // Returns Field::null() if none available in the list. | 528 // Returns Field::null() if none available in the list. Can be called |
| 529 // only from background compiler and while mutator thread is at safepoint. |
529 RawField* GetDisablingField(); | 530 RawField* GetDisablingField(); |
530 void ClearDisablingFieldList(); | 531 void ClearDisablingFieldList(); |
531 | 532 |
532 // Used by background compiler which field became boxed and must trigger | 533 // Used by background compiler which field became boxed and must trigger |
533 // deoptimization in the mutator thread. | 534 // deoptimization in the mutator thread. |
534 void AddDeoptimizingBoxedField(const Field& field); | 535 void AddDeoptimizingBoxedField(const Field& field); |
535 // Returns Field::null() if none available in the list. | 536 // Returns Field::null() if none available in the list. |
536 RawField* GetDeoptimizingBoxedField(); | 537 RawField* GetDeoptimizingBoxedField(); |
537 | 538 |
538 RawObject* InvokePendingServiceExtensionCalls(); | 539 RawObject* InvokePendingServiceExtensionCalls(); |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
923 intptr_t* spawn_count_; | 924 intptr_t* spawn_count_; |
924 | 925 |
925 Dart_IsolateFlags isolate_flags_; | 926 Dart_IsolateFlags isolate_flags_; |
926 bool paused_; | 927 bool paused_; |
927 bool errors_are_fatal_; | 928 bool errors_are_fatal_; |
928 }; | 929 }; |
929 | 930 |
930 } // namespace dart | 931 } // namespace dart |
931 | 932 |
932 #endif // VM_ISOLATE_H_ | 933 #endif // VM_ISOLATE_H_ |
OLD | NEW |