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

Unified Diff: runtime/vm/isolate.cc

Issue 2759533002: Remove legacy restart code (Closed)
Patch Set: asiva review Created 3 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/isolate_reload.cc » ('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 b473061aadc884ff94fc990da3ccb0d03c245284..5b9f0709e4f4d0a6c7fae06be76b97b3af152aa8 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -314,8 +314,7 @@ RawError* IsolateMessageHandler::HandleLibMessage(const Array& message) {
break;
}
case Isolate::kKillMsg:
- case Isolate::kInternalKillMsg:
- case Isolate::kVMRestartMsg: {
+ case Isolate::kInternalKillMsg: {
// [ OOB, kKillMsg, terminate capability, priority ]
if (message.Length() != 4) return Error::null();
Object& obj = Object::Handle(zone, message.At(3));
@@ -336,16 +335,6 @@ RawError* IsolateMessageHandler::HandleLibMessage(const Array& message) {
const String& msg =
String::Handle(String::New("isolate terminated by vm"));
return UnwindError::New(msg);
- } else if (msg_type == Isolate::kVMRestartMsg) {
- // If this is the main isolate, this request to restart
- // will be caught and handled in the embedder. Otherwise
- // this unwind error will cause the isolate to exit.
- const String& msg = String::Handle(
- String::New("isolate terminated for vm restart"));
- const UnwindError& error =
- UnwindError::Handle(UnwindError::New(msg));
- error.set_is_vm_restart(true);
- return error.raw();
} else {
UNREACHABLE();
}
@@ -531,7 +520,11 @@ MessageHandler::MessageStatus IsolateMessageHandler::HandleMessage(
switch (Smi::Cast(oob_tag).Value()) {
case Message::kServiceOOBMsg: {
if (FLAG_support_service) {
- Service::HandleIsolateMessage(I, oob_msg);
+ const Error& error =
+ Error::Handle(Service::HandleIsolateMessage(I, oob_msg));
+ if (!error.IsNull()) {
+ status = ProcessUnhandledException(error);
+ }
} else {
UNREACHABLE();
}
@@ -650,11 +643,7 @@ static MessageHandler::MessageStatus StoreError(Thread* thread,
if (error.IsUnwindError()) {
const UnwindError& unwind = UnwindError::Cast(error);
if (!unwind.is_user_initiated()) {
- if (unwind.is_vm_restart()) {
- return MessageHandler::kRestart;
- } else {
- return MessageHandler::kShutdown;
- }
+ return MessageHandler::kShutdown;
}
}
return MessageHandler::kError;
@@ -1033,18 +1022,24 @@ bool Isolate::IsPaused() const {
}
-void Isolate::PausePostRequest() {
+RawError* Isolate::PausePostRequest() {
if (!FLAG_support_debugger) {
- return;
+ return Error::null();
}
if (debugger_ == NULL) {
- return;
+ return Error::null();
}
ASSERT(!IsPaused());
const Error& error = Error::Handle(debugger_->PausePostRequest());
if (!error.IsNull()) {
- Exceptions::PropagateError(error);
+ if (Thread::Current()->top_exit_frame_info() == 0) {
+ return error.raw();
+ } else {
+ Exceptions::PropagateError(error);
+ UNREACHABLE();
+ }
}
+ return Error::null();
}
« no previous file with comments | « runtime/vm/isolate.h ('k') | runtime/vm/isolate_reload.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698