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

Side by Side Diff: runtime/vm/service_isolate.cc

Issue 2651633002: VM: [Kernel] Fix bootstraping when Kernel isolate is used. (Closed)
Patch Set: Landing issue Created 3 years, 10 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 unified diff | Download patch
« no previous file with comments | « runtime/vm/native_message_handler.cc ('k') | samples/sample_extension/sample_extension.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 #include "vm/service_isolate.h" 5 #include "vm/service_isolate.h"
6 6
7 #include "vm/compiler.h" 7 #include "vm/compiler.h"
8 #include "vm/dart_api_impl.h" 8 #include "vm/dart_api_impl.h"
9 #include "vm/dart_entry.h" 9 #include "vm/dart_entry.h"
10 #include "vm/isolate.h" 10 #include "vm/isolate.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 95
96 96
97 const char* ServiceIsolate::kName = "vm-service"; 97 const char* ServiceIsolate::kName = "vm-service";
98 Isolate* ServiceIsolate::isolate_ = NULL; 98 Isolate* ServiceIsolate::isolate_ = NULL;
99 Dart_Port ServiceIsolate::port_ = ILLEGAL_PORT; 99 Dart_Port ServiceIsolate::port_ = ILLEGAL_PORT;
100 Dart_Port ServiceIsolate::load_port_ = ILLEGAL_PORT; 100 Dart_Port ServiceIsolate::load_port_ = ILLEGAL_PORT;
101 Dart_Port ServiceIsolate::origin_ = ILLEGAL_PORT; 101 Dart_Port ServiceIsolate::origin_ = ILLEGAL_PORT;
102 Dart_IsolateCreateCallback ServiceIsolate::create_callback_ = NULL; 102 Dart_IsolateCreateCallback ServiceIsolate::create_callback_ = NULL;
103 uint8_t* ServiceIsolate::exit_message_ = NULL; 103 uint8_t* ServiceIsolate::exit_message_ = NULL;
104 intptr_t ServiceIsolate::exit_message_length_ = 0; 104 intptr_t ServiceIsolate::exit_message_length_ = 0;
105 Monitor* ServiceIsolate::monitor_ = NULL; 105 Monitor* ServiceIsolate::monitor_ = new Monitor();
106 bool ServiceIsolate::initializing_ = true; 106 bool ServiceIsolate::initializing_ = true;
107 bool ServiceIsolate::shutting_down_ = false; 107 bool ServiceIsolate::shutting_down_ = false;
108 char* ServiceIsolate::server_address_ = NULL; 108 char* ServiceIsolate::server_address_ = NULL;
109 109
110 void ServiceIsolate::RequestServerInfo(const SendPort& sp) { 110 void ServiceIsolate::RequestServerInfo(const SendPort& sp) {
111 const Array& message = Array::Handle(MakeServerControlMessage( 111 const Array& message = Array::Handle(MakeServerControlMessage(
112 sp, VM_SERVICE_SERVER_INFO_MESSAGE_ID, false /* ignored */)); 112 sp, VM_SERVICE_SERVER_INFO_MESSAGE_ID, false /* ignored */));
113 ASSERT(!message.IsNull()); 113 ASSERT(!message.IsNull());
114 uint8_t* data = NULL; 114 uint8_t* data = NULL;
115 MessageWriter writer(&data, &malloc_allocator, &malloc_deallocator, false); 115 MessageWriter writer(&data, &malloc_allocator, &malloc_deallocator, false);
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 } 476 }
477 ASSERT(result.IsReceivePort()); 477 ASSERT(result.IsReceivePort());
478 const ReceivePort& rp = ReceivePort::Cast(result); 478 const ReceivePort& rp = ReceivePort::Cast(result);
479 ServiceIsolate::SetLoadPort(rp.Id()); 479 ServiceIsolate::SetLoadPort(rp.Id());
480 return false; 480 return false;
481 } 481 }
482 }; 482 };
483 483
484 484
485 void ServiceIsolate::Run() { 485 void ServiceIsolate::Run() {
486 ASSERT(monitor_ == NULL);
487 monitor_ = new Monitor();
488 ASSERT(monitor_ != NULL);
489 // Grab the isolate create callback here to avoid race conditions with tests 486 // Grab the isolate create callback here to avoid race conditions with tests
490 // that change this after Dart_Initialize returns. 487 // that change this after Dart_Initialize returns.
491 create_callback_ = Isolate::CreateCallback(); 488 create_callback_ = Isolate::CreateCallback();
492 Dart::thread_pool()->Run(new RunServiceTask()); 489 Dart::thread_pool()->Run(new RunServiceTask());
493 } 490 }
494 491
495 492
496 void ServiceIsolate::KillServiceIsolate() { 493 void ServiceIsolate::KillServiceIsolate() {
497 { 494 {
498 MonitorLocker ml(monitor_); 495 MonitorLocker ml(monitor_);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 port = ReceivePort::Cast(result).Id(); 554 port = ReceivePort::Cast(result).Id();
558 } 555 }
559 ASSERT(port != ILLEGAL_PORT); 556 ASSERT(port != ILLEGAL_PORT);
560 ServiceIsolate::SetServicePort(port); 557 ServiceIsolate::SetServicePort(port);
561 } 558 }
562 559
563 560
564 void ServiceIsolate::VisitObjectPointers(ObjectPointerVisitor* visitor) {} 561 void ServiceIsolate::VisitObjectPointers(ObjectPointerVisitor* visitor) {}
565 562
566 } // namespace dart 563 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/native_message_handler.cc ('k') | samples/sample_extension/sample_extension.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698