| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 "include/dart_api.h" | 5 #include "include/dart_api.h" |
| 6 #include "platform/assert.h" | 6 #include "platform/assert.h" |
| 7 #include "platform/utils.h" | 7 #include "platform/utils.h" |
| 8 #include "vm/class_finalizer.h" | 8 #include "vm/class_finalizer.h" |
| 9 #include "vm/dart_api_impl.h" | 9 #include "vm/dart_api_impl.h" |
| 10 #include "vm/dart_api_state.h" | 10 #include "vm/dart_api_state.h" |
| (...skipping 4182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4193 EXPECT_EQ(kIllegalPort, error_port); | 4193 EXPECT_EQ(kIllegalPort, error_port); |
| 4194 | 4194 |
| 4195 // Create the port w/o a current isolate, just to make sure that works. | 4195 // Create the port w/o a current isolate, just to make sure that works. |
| 4196 Dart_Port port_id1 = | 4196 Dart_Port port_id1 = |
| 4197 Dart_NewNativePort("Port123", NewNativePort_send123, true); | 4197 Dart_NewNativePort("Port123", NewNativePort_send123, true); |
| 4198 | 4198 |
| 4199 TestIsolateScope __test_isolate__; | 4199 TestIsolateScope __test_isolate__; |
| 4200 const char* kScriptChars = | 4200 const char* kScriptChars = |
| 4201 "#import('dart:isolate');\n" | 4201 "#import('dart:isolate');\n" |
| 4202 "void callPort(SendPort port) {\n" | 4202 "void callPort(SendPort port) {\n" |
| 4203 " port.call(null).receive((message, replyTo) {\n" | 4203 " port.call(null).then((message) {\n" |
| 4204 " throw new Exception(message);\n" | 4204 " throw new Exception(message);\n" |
| 4205 " });\n" | 4205 " });\n" |
| 4206 "}\n"; | 4206 "}\n"; |
| 4207 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); | 4207 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); |
| 4208 Dart_EnterScope(); | 4208 Dart_EnterScope(); |
| 4209 | 4209 |
| 4210 // Create a port w/ a current isolate, to make sure that works too. | 4210 // Create a port w/ a current isolate, to make sure that works too. |
| 4211 Dart_Port port_id2 = | 4211 Dart_Port port_id2 = |
| 4212 Dart_NewNativePort("Port321", NewNativePort_send321, true); | 4212 Dart_NewNativePort("Port321", NewNativePort_send321, true); |
| 4213 | 4213 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4265 " } else {\n" | 4265 " } else {\n" |
| 4266 " replyTo.call('hello');\n" | 4266 " replyTo.call('hello');\n" |
| 4267 " port.close();\n" | 4267 " port.close();\n" |
| 4268 " }\n" | 4268 " }\n" |
| 4269 " });\n" | 4269 " });\n" |
| 4270 " }\n" | 4270 " }\n" |
| 4271 "}\n" | 4271 "}\n" |
| 4272 "\n" | 4272 "\n" |
| 4273 "void main(exc_child, exc_parent) {\n" | 4273 "void main(exc_child, exc_parent) {\n" |
| 4274 " new MyIsolate().spawn().then((port) {\n" | 4274 " new MyIsolate().spawn().then((port) {\n" |
| 4275 " port.call(exc_child).receive((message, replyTo) {\n" | 4275 " port.call(exc_child).then((message) {\n" |
| 4276 " if (message != 'hello') throw new Exception('ShouldNotHappen');\n" | 4276 " if (message != 'hello') throw new Exception('ShouldNotHappen');\n" |
| 4277 " if (exc_parent) throw new Exception('MakeParentExit');\n" | 4277 " if (exc_parent) throw new Exception('MakeParentExit');\n" |
| 4278 " });\n" | 4278 " });\n" |
| 4279 " });\n" | 4279 " });\n" |
| 4280 "}\n"; | 4280 "}\n"; |
| 4281 | 4281 |
| 4282 if (Dart_CurrentIsolate() != NULL) { | 4282 if (Dart_CurrentIsolate() != NULL) { |
| 4283 Dart_ExitIsolate(); | 4283 Dart_ExitIsolate(); |
| 4284 } | 4284 } |
| 4285 Dart_Isolate isolate = TestCase::CreateTestIsolate(); | 4285 Dart_Isolate isolate = TestCase::CreateTestIsolate(); |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4502 // We should have received the expected number of interrupts. | 4502 // We should have received the expected number of interrupts. |
| 4503 EXPECT_EQ(kInterruptCount, interrupt_count); | 4503 EXPECT_EQ(kInterruptCount, interrupt_count); |
| 4504 | 4504 |
| 4505 // Give the spawned thread enough time to properly exit. | 4505 // Give the spawned thread enough time to properly exit. |
| 4506 Isolate::SetInterruptCallback(saved); | 4506 Isolate::SetInterruptCallback(saved); |
| 4507 } | 4507 } |
| 4508 | 4508 |
| 4509 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 4509 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
| 4510 | 4510 |
| 4511 } // namespace dart | 4511 } // namespace dart |
| OLD | NEW |