Commit Graph

117 Commits

Author SHA1 Message Date
johnmccutchan@google.com 36a1740aa5 Make service lifecycle checks thread safe
RunLoop tests were getting wedged trying to communicate with the vm-isolate that was shutdown before a test isolate started up. dartbug.com/22219

This CL:
* ensures that any 'is the service running' checks are done with a lock held.
* Normalizes trace messages printed from the vm-service.

Review URL: https://codereview.chromium.org//871373012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43348 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-30 22:03:18 +00:00
johnmccutchan@google.com 172baa03ff Service isolate rework take 2
Review URL: https://codereview.chromium.org//889443002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43306 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-29 18:31:27 +00:00
johnmccutchan@google.com db271b0477 Revert r43217, r43215, r43208, r43207, and r43202.
Reverting because of some isolate spawn issues (on Windows, and pub bots).

Review URL: https://codereview.chromium.org//867113003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43219 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 22:56:18 +00:00
johnmccutchan@google.com 66aa470fc6 * Create vm-service isolate at Dart_Initialize time.
* Remove Service create callback.
* Simplify creation of service isolate.
* Creation is done on thread pool.
* Use vm-service isolate for loading in standalone embedder.
* Remove import of dart:io from builtin library.

performance changes:

no service isolate:

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | -    0]

always start service isolate (as a thread pool task):

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:45 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:44 | 100% | +12363 | -    0]

service does I/O (calls to Dart_LoadScript block until service is running):

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | -    0]

$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | -    0]

R=asiva@google.com

Review URL: https://codereview.chromium.org//584023004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43202 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 19:45:48 +00:00
koda@google.com 96576ad59e vmservice: basic object graph serialization.
Sends a service event with binary data encoding the basic shape of the object graph; for each object, its:
* size
* class id
* neighbors (excluding smis and nulls)

This is a minimal implementation to make the first unit test pass (TDD).

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//773573005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42070 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 19:33:09 +00:00
johnmccutchan@google.com 435c6ad7ac Reduce service isolate startup time from ~80ms to ~30ms
- Get access to dart:io internal signal listening function using API instead of mirrors.

- Service isolate can start with service deactivated.
- Load Observatory front end resources only when service activated.
- Do not execute Dart Service code until service is activated.
- Register live isolates when service is activated.

- Startup refactored to allow for future use of script snapshots.

R=asiva@google.com

Review URL: https://codereview.chromium.org//533073005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40124 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-10 22:38:33 +00:00
koda@google.com 5d5deec4e6 Optional binary payloads in VM service events.
Allow an event to send a binary blob in addition to its JSON message.
For testing, add _Echo event type that is triggered by an _echo/event request.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//474633002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39332 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-18 15:35:03 +00:00
koda@google.com 6312736130 Add a new event family for GC-related events, and generate an event after each garbage collection with basic stats.
One reason for this is to provide a structured alternative to the ad hoc logging format of --verbose_gc, and to move some functionality currently provided by standalone one-off scripts into the observatory.

Add first unit test for events.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//434763002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39014 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-07 23:52:18 +00:00
johnmccutchan@google.com 58a4356ef6 Dartium doesn't have a library tag handler installed in the service isolate. Allow for no embedder provided library tag handler so long as no imports need to be handled.
Fixes part of https://code.google.com/p/dart/issues/detail?id=20049

R=asiva@google.com

Review URL: https://codereview.chromium.org//391943003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38239 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-15 16:33:56 +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
turnidge@google.com f849afc751 Add support for asynchronous event notification to the observatory.
Implement "isolate pause" notifications.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//340443006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37841 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-30 22:46:27 +00:00
turnidge@google.com 9c5c7040dc Add a VM page to the observatory.
Make the VM a ServiceObject.  Some refactoring in the ServiceObject
implementation.

IsolateList is no longer a ServiceObject.  It should eventually become more like our caches.

Support the /vm request in the vm.  Remove isolate list request.

Improvements to Isolate::PrintToJSONStream: always provide a
reasonable name.  Use the same code to produce isolate refs and
non-refs.

Improve isolate status message when the isolate is paused at
start/exit.  Add a resume link to the isolate view.

Add a navbar to the error page so that dartium users are less likely
to get stuck.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//206213004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34204 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-20 21:00:10 +00:00
johnmccutchan@google.com 2820a12766 Allow for embedder provided service request handlers
BUG=
R=turnidge@google.com

Review URL: https://codereview.chromium.org//170943003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32769 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-18 22:38:11 +00:00
turnidge@google.com 12f8555b19 Allow root level requests in the vm service.
Move /cpu to the root level.

Move PostReply to the command handlers.  This will allow command
handlers to reply asynchronously (by delegating elsewhere) if they
need to.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//131973007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31849 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 20:45:39 +00:00
johnmccutchan@google.com c76b6eb1c2 Split service into VM and embedder specific bits.
Move most service sources into the VM.

R=asiva@google.com

Review URL: https://codereview.chromium.org//125103004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31809 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-14 22:34:43 +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
johnmccutchan@google.com ea3a5cfb93 VM Service isolate listing
R=asiva@google.com

Review URL: https://codereview.chromium.org//19622003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25279 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 15:39:03 +00:00