turnidge@google.com
c48496b873
Refactor isolate startup code in preparation for making isolate spawning more truly non-blocking.
...
Instead of passing a startup message to the new isolate, pass all
necessary information in to _startIsolate directly. The new isolate
sends its control port and capabilities back to the parent.
R=iposva@google.com
Review URL: https://codereview.chromium.org//456983002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39423 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 19:57:09 +00:00
iposva@google.com
03e8b14ed9
- Address review comments from https://codereview.chromium.org/474913004/
...
- Clearly mark overrides of ThreadPool::Task::Run as virtual.
Review URL: https://codereview.chromium.org//480343003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39418 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 18:37:29 +00:00
iposva@google.com
14ecdbd66a
- Separate the thread implementation used in bin/ and vm/
...
to allow us to make VM specific changes.
R=asiva@google.com
Review URL: https://codereview.chromium.org//463993002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39172 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-12 23:19:53 +00:00
iposva@google.com
5686b6a793
- Implement Isolate.pause and Isolate.resume.
...
- Implement a minimum Capability functionality.
R=asiva@google.com
Review URL: https://codereview.chromium.org//354763004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37982 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-03 12:56:02 +00:00
iposva@google.com
8cb7e0797f
- Fix style.
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//308693003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36789 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-29 16:07:17 +00:00
johnmccutchan@google.com
9b385ee2d2
Add trace_service_pause_events flag and paused at exit tracing
...
R=keertip@google.com , turnidge@google.com
Review URL: https://codereview.chromium.org//271893002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35944 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-08 22:02:38 +00:00
iposva@google.com
fd8565b071
- Add a minimal implementation of Capability.
...
- Make RawReceivePort and SendPort VM internal objects.
- Rationalize the creation of ports and their handling within the VM.
R=asiva@google.com
Review URL: https://codereview.chromium.org//243973002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35325 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 19:44:03 +00:00
iposva@google.com
e78cc1544d
- Make ports be less predictable.
...
- Limit the range of port numbers to 30-bits.
- Parse the ports as 64-bit values when reading from the wire in the debugger protocol.
R=hausner@google.com
Review URL: https://codereview.chromium.org//217693002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34542 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-28 23:39:36 +00:00
kasperl@google.com
0d1c6ddec8
Revert "- Make ports be less predictable."
...
This reverts r34209 which is causing the x64 VM to hang when
running command-line applications from within the editor.
R=ricow@google.com , iposva@google.com
BUG=http://dartbug.com/17806
Review URL: https://codereview.chromium.org//212723002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34420 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-26 11:38:30 +00:00
iposva@google.com
b98c628ee7
- Make ports be less predictable.
...
R=turnidge@google.com
Review URL: https://codereview.chromium.org//198463007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34209 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-20 21:48:35 +00:00
johnmccutchan@google.com
95b2427f6f
Support wedging isolates before startup or before exit.
...
R=turnidge@google.com
Review URL: https://codereview.chromium.org//204003002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34079 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-18 23:32:36 +00:00
iposva@google.com
1e8061f060
- Remove the reply_port from the VM internal message object.
...
- Adjust all the uses of this API.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//93873015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31205 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 21:11:18 +00:00
iposva@google.com
b3f3d8bfbd
- Make sure to keep the main/control port opened until the
...
isolate is finished.
- Account for the number of opened control ports to be able
to determine whether there are live ports.
- Fix imports in snapshotted test.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//46173002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29315 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-26 20:50:20 +00:00
jacobr@google.com
605b33c1bc
fix cpp11 compile errors
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//23072026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26387 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-20 20:24:11 +00:00
ager@google.com
08b1e44502
Reapply "Optimize the message queue for many active ports with few messages."
...
BUG=
Review URL: https://codereview.chromium.org//11647038
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16394 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 20:03:07 +00:00
ager@google.com
c3c47bbc98
Revert "Optimize the message queue for many active ports with few messages."
...
No failures locally. I'll investigate tomorrow.
R=iposva@google.com
BUG=
Review URL: https://codereview.chromium.org//11642048
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16392 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 19:40:29 +00:00
ager@google.com
6e945a2578
Optimize the message queue for many active ports with few messages.
...
The current message queue implementation is very inefficient if you are using
many active ports with few messages. This happens when you use 'call' a lot
on ports which is currently done in dart:io.
This patch does not remove messages from the queue when closing a port. Instead
it drops messages for closed ports when it processes them. This dramatically
speeds up dart:io benchmarks that enqueue tons of writes on a file output
stream.
R=iposva@google.com
BUG=http://dartbug.com/6911
Review URL: https://codereview.chromium.org//11440035
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16388 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 19:20:44 +00:00
asiva@google.com
f4fc4f8318
Fix some warnings generated when -Wconversion-null is used.
...
Review URL: https://codereview.chromium.org//11312096
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14553 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-06 02:58:00 +00:00
cshapiro@google.com
da14bf70a7
Add attributions so printf like functions can have their arguments checked.
...
This change also corrects some misuses of format strings and format
arguments that discovered by the compiler checks.
Review URL: https://chromiumcodereview.appspot.com//10869063
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11912 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-06 00:58:25 +00:00
turnidge@google.com
9d72035ce5
Use the ThreadPool for all isolates and native ports. Previously,
...
each isolate or native port had a dedicated thread.
Refactored the MessageHandler api...
- Added a Run function to allow a MessageHandler to run on a
ThreadPool. These functions take a start and end callback to allow for
isolate initialization and shutdown.
- Made the queue private to the MessageHandler and moved all message
processing code inside the MessageHandler (got rid of all of the
different flavors of RunLoop). This helps remove some code
duplication and hides the details of how messages are handled.
- Moved all locking and notification out of MessageQueue and moved it
up to MessageHandler. Moved OOB support out of MessageQueue and up
to MessageHandler. These changes make the MessageQueue much
simpler.
- Refactored native port and isolate MessageHandlers to share more code.
- Improved --trace_isolates output.
- Added tests for MessageHandler.
Refactored lib/isolate code...
- Use the new MessageHandler::Run api.
- Got rid of the LongJump stuff in RunIsolate. No longer needed.
- Use the new StartIsolateScope/SwitchIsolateScope to make the code
less verbose and less error-prone.
- Store top-level isolate errors in the sticky_error.
Added StartIsolateScope/SwitchIsolateScope classes.
Review URL: https://chromiumcodereview.appspot.com//9924015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6762 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-19 19:47:27 +00:00