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

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

Issue 800713002: - Implement Isolate.kill. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years 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 | Annotate | Revision Log
OLDNEW
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 #include "vm/code_generator.h" 5 #include "vm/code_generator.h"
6 6
7 #include "vm/assembler.h" 7 #include "vm/assembler.h"
8 #include "vm/ast.h" 8 #include "vm/ast.h"
9 #include "vm/code_patcher.h" 9 #include "vm/code_patcher.h"
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 1174 matching lines...) Expand 10 before | Expand all | Expand 10 after
1185 } 1185 }
1186 1186
1187 uword interrupt_bits = isolate->GetAndClearInterrupts(); 1187 uword interrupt_bits = isolate->GetAndClearInterrupts();
1188 if ((interrupt_bits & Isolate::kStoreBufferInterrupt) != 0) { 1188 if ((interrupt_bits & Isolate::kStoreBufferInterrupt) != 0) {
1189 if (FLAG_verbose_gc) { 1189 if (FLAG_verbose_gc) {
1190 OS::PrintErr("Scavenge scheduled by store buffer overflow.\n"); 1190 OS::PrintErr("Scavenge scheduled by store buffer overflow.\n");
1191 } 1191 }
1192 isolate->heap()->CollectGarbage(Heap::kNew); 1192 isolate->heap()->CollectGarbage(Heap::kNew);
1193 } 1193 }
1194 if ((interrupt_bits & Isolate::kMessageInterrupt) != 0) { 1194 if ((interrupt_bits & Isolate::kMessageInterrupt) != 0) {
1195 isolate->message_handler()->HandleOOBMessages(); 1195 bool ok = isolate->message_handler()->HandleOOBMessages();
1196 if (!ok) {
1197 const String& msg = String::Handle(String::New("unwind"));
siva 2014/12/13 00:24:05 why not "isolate terminated" instead of "unwind" s
Ivan Posva 2014/12/13 00:36:47 Done and added a comment.
1198 const UnwindError& error = UnwindError::Handle(UnwindError::New(msg));
1199 Exceptions::PropagateError(error);
Lasse Reichstein Nielsen 2014/12/13 02:04:46 If an UnwindError terminates the isolate without r
Ivan Posva 2014/12/15 22:25:59 PropagateError does propagate the error to the nex
1200 UNREACHABLE();
1201 }
1196 } 1202 }
1197 if ((interrupt_bits & Isolate::kApiInterrupt) != 0) { 1203 if ((interrupt_bits & Isolate::kApiInterrupt) != 0) {
1198 // Signal isolate interrupt event. 1204 // Signal isolate interrupt event.
1199 Debugger::SignalIsolateInterrupted(); 1205 Debugger::SignalIsolateInterrupted();
1200 1206
1201 Dart_IsolateInterruptCallback callback = isolate->InterruptCallback(); 1207 Dart_IsolateInterruptCallback callback = isolate->InterruptCallback();
1202 if (callback) { 1208 if (callback) {
1203 if ((*callback)()) { 1209 if ((*callback)()) {
1204 return; 1210 return;
1205 } else { 1211 } else {
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
1645 field.RecordStore(value); 1651 field.RecordStore(value);
1646 } 1652 }
1647 1653
1648 1654
1649 DEFINE_RUNTIME_ENTRY(InitStaticField, 1) { 1655 DEFINE_RUNTIME_ENTRY(InitStaticField, 1) {
1650 const Field& field = Field::CheckedHandle(arguments.ArgAt(0)); 1656 const Field& field = Field::CheckedHandle(arguments.ArgAt(0));
1651 field.EvaluateInitializer(); 1657 field.EvaluateInitializer();
1652 } 1658 }
1653 1659
1654 } // namespace dart 1660 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/lib/isolate_patch.dart ('k') | runtime/vm/isolate.h » ('j') | runtime/vm/isolate.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698