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

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

Issue 9141005: Change the thread interface in runtime/platform and use it starting all threads (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed review comments from asiva@ Created 8 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 | Annotate | Revision Log
« runtime/bin/thread_pool.cc ('K') | « runtime/vm/message_queue_test.cc ('k') | no next file » | 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) 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 "platform/assert.h" 5 #include "platform/assert.h"
6 #include "vm/message_queue.h" 6 #include "vm/message_queue.h"
7 #include "vm/os.h" 7 #include "vm/os.h"
8 #include "vm/port.h" 8 #include "vm/port.h"
9 #include "vm/unit_test.h" 9 #include "vm/unit_test.h"
10 10
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 } 228 }
229 PortMap::PostMessage(remote, 0, AllocIntData(kEOT)); 229 PortMap::PostMessage(remote, 0, AllocIntData(kEOT));
230 230
231 Dart::ShutdownIsolate(); 231 Dart::ShutdownIsolate();
232 } 232 }
233 233
234 234
235 TEST_CASE(ThreadedPort) { 235 TEST_CASE(ThreadedPort) {
236 intptr_t local = PortMap::CreatePort(); 236 intptr_t local = PortMap::CreatePort();
237 237
238 Thread* thr = new Thread(ThreadedPort_start, local); 238 int result = Thread::Start(ThreadedPort_start, local);
239 EXPECT(thr != NULL); 239 EXPECT_EQ(0, result);
240 240
241 PortMessage* msg = NextMessage(); 241 PortMessage* msg = NextMessage();
242 EXPECT_EQ(local, msg->dest_port()); 242 EXPECT_EQ(local, msg->dest_port());
243 EXPECT(msg != NULL); 243 EXPECT(msg != NULL);
244 intptr_t remote = GetIntData(msg->data()); // Get the remote port. 244 intptr_t remote = GetIntData(msg->data()); // Get the remote port.
245 delete msg; 245 delete msg;
246 246
247 for (intptr_t i = 0; i < 10; i++) { 247 for (intptr_t i = 0; i < 10; i++) {
248 PortMap::PostMessage(remote, 0, AllocIntData(i)); 248 PortMap::PostMessage(remote, 0, AllocIntData(i));
249 PortMessage* msg = NextMessage(); 249 PortMessage* msg = NextMessage();
(...skipping 13 matching lines...) Expand all
263 // Give the spawned thread enough time to properly exit. 263 // Give the spawned thread enough time to properly exit.
264 Monitor* waiter = new Monitor(); 264 Monitor* waiter = new Monitor();
265 { 265 {
266 MonitorLocker ml(waiter); 266 MonitorLocker ml(waiter);
267 ml.Wait(20); 267 ml.Wait(20);
268 } 268 }
269 delete waiter; 269 delete waiter;
270 } 270 }
271 271
272 } // namespace dart 272 } // namespace dart
OLDNEW
« runtime/bin/thread_pool.cc ('K') | « runtime/vm/message_queue_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698