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

Unified Diff: runtime/vm/isolate.cc

Issue 1027243003: Revert "Eliminate fake-Isolate workaround from concurrent sweeper." (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 9 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') | runtime/vm/pages.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/isolate.cc
===================================================================
--- runtime/vm/isolate.cc (revision 44632)
+++ runtime/vm/isolate.cc (working copy)
@@ -601,6 +601,65 @@
set_user_tag(UserTags::kDefaultUserTag);
}
+Isolate::Isolate(Isolate* original)
+ : vm_tag_(0),
+ store_buffer_(true),
+ class_table_(original->class_table()),
+ message_notify_callback_(NULL),
+ name_(NULL),
+ start_time_(OS::GetCurrentTimeMicros()),
+ main_port_(0),
+ pause_capability_(0),
+ terminate_capability_(0),
+ errors_fatal_(true),
+ heap_(NULL),
+ object_store_(NULL),
+ top_exit_frame_info_(0),
+ init_callback_data_(NULL),
+ environment_callback_(NULL),
+ library_tag_handler_(NULL),
+ api_state_(NULL),
+ stub_code_(NULL),
+ debugger_(NULL),
+ single_step_(false),
+ resume_request_(false),
+ random_(),
+ simulator_(NULL),
+ long_jump_base_(NULL),
+ timer_list_(),
+ deopt_id_(0),
+ mutex_(new Mutex()),
+ stack_limit_(0),
+ saved_stack_limit_(0),
+ stack_overflow_flags_(0),
+ stack_overflow_count_(0),
+ message_handler_(NULL),
+ spawn_state_(NULL),
+ is_runnable_(false),
+ gc_prologue_callback_(NULL),
+ gc_epilogue_callback_(NULL),
+ defer_finalization_count_(0),
+ deopt_context_(NULL),
+ is_service_isolate_(false),
+ log_(new class Log()),
+ stacktrace_(NULL),
+ stack_frame_index_(-1),
+ last_allocationprofile_accumulator_reset_timestamp_(0),
+ last_allocationprofile_gc_timestamp_(0),
+ cha_(NULL),
+ object_id_ring_(NULL),
+ trace_buffer_(NULL),
+ profiler_data_(NULL),
+ thread_state_(NULL),
+ tag_table_(GrowableObjectArray::null()),
+ current_tag_(UserTag::null()),
+ default_tag_(UserTag::null()),
+ metrics_list_head_(NULL),
+ next_(NULL),
+ REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_INITIALIZERS)
+ REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_SCOPE_INIT)
+ reusable_handles_() {
+}
#undef REUSABLE_HANDLE_SCOPE_INIT
#undef REUSABLE_HANDLE_INITIALIZERS
@@ -1307,17 +1366,6 @@
void Isolate::Shutdown() {
ASSERT(this == Isolate::Current());
ASSERT(top_resource() == NULL);
-
- // Remove this isolate from the list *before* we start tearing it down, to
- // avoid exposing it in a state of decay.
- RemoveIsolateFromList(this);
-
- // Create an area where we do have a zone and a handle scope so that we can
- // call VM functions while tearing this isolate down.
- {
- StackZone stack_zone(this);
- HandleScope handle_scope(this);
-
#if defined(DEBUG)
if (heap_ != NULL) {
// Wait for concurrent GC tasks to finish before final verification.
@@ -1331,6 +1379,16 @@
}
#endif // DEBUG
+ // Remove this isolate from the list *before* we start tearing it down, to
+ // avoid exposing it in a state of decay.
+ RemoveIsolateFromList(this);
+
+ // Create an area where we do have a zone and a handle scope so that we can
+ // call VM functions while tearing this isolate down.
+ {
+ StackZone stack_zone(this);
+ HandleScope handle_scope(this);
+
// Notify exit listeners that this isolate is shutting down.
if (object_store() != NULL) {
NotifyExitListeners();
@@ -1374,6 +1432,11 @@
}
+Isolate* Isolate::ShallowCopy() {
+ return new Isolate(this);
+}
+
+
Dart_IsolateCreateCallback Isolate::create_callback_ = NULL;
Dart_IsolateInterruptCallback Isolate::interrupt_callback_ = NULL;
Dart_IsolateUnhandledExceptionCallback
« no previous file with comments | « runtime/vm/isolate.h ('k') | runtime/vm/pages.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698