- API breakage: Dart_IsolateBlocked, Dart_IsolateUnblocked -> Dart_ThreadDisableProfiling, Dart_ThreadEnableProfiling.
- Remove IsolateProfilerData.
- Move thread at blocking call count from isolate to thread.
- Always interrupt threads unless they are blocked.
- We can no longer count "idle" ticks.
- Only record sample if thread is the current mutator of an isolate.
- Refactor ThreadInterrupterCallback to ensure that Thread* is valid.
Threads are only ever sent signals if ThreadInterruptsEnabled is true. Which is controlled by two functions:
void DisableThreadInterrupts();
void EnableThreadInterrupts();
R=asiva@google.com, iposva@google.com
Review URL: https://codereview.chromium.org/1423473004 .
- When a process exits on Windows, Windows closes all handles
- Our mutexes use a handle to a semaphore for locking
- If our TLS destructors need to take a lock during thread exit (but after process has started to shutdown) we will deadlock waiting on a handle that's been closed.
This works around the problem by not running tls destructors when we are exiting the process.
R=zra@google.com
Review URL: https://codereview.chromium.org/1409723007 .
- When a process exits on Windows, Windows closes all handles
- Our mutexes use a handle to a semaphore for locking
- If our TLS destructors need to take a lock during thread exit (but after process has started to shutdown) we will deadlock waiting on a handle that's been closed.
This works around the problem by not running tls destructors when we are exiting the process.
R=zra@google.com
Review URL: https://codereview.chromium.org/1416063005 .
For dart2js:
Uri.pathSegments.easy: +792%
Uri.pathSegments.hard.escaped: +8%
Uri.pathSegments.hard.normalized: +152%
For VM:
Uri.pathSegments.easy: +117%
Uri.pathSegments.hard.escaped: -8%
Uri.pathSegments.hard.normalized: +35%
We could probably get a little more in the browser if we make the check a patched '_platformUriEncode' method, but the 'encoding' parameter makes it impossible to remove _uriEncode completely.
R=lrn@google.com
Review URL: https://codereview.chromium.org/1411413008 .
Moving the construction of ?? into the parser using LetNode, so that the await-transformations are properly applied.
a ?? b becomes { temp = a; temp !== null ? temp : b; }
a ??= b becomes { temp = a; temp != null ? temp : a = b; }
BUG=issue #24392R=hausner@google.com
Review URL: https://codereview.chromium.org/1417733007 .
also sorted members per analyzer style (?)
figured it would be easier to work on as a 0.5k file vs ~15k resolver.dart :)
For now I left TypeProvider where it was. Not sure if it should move here or into its own file as well.
For backwards compat, all of the types are re-exported from resolver.dart.
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/1407923009 .
Basic YAML map merging suitable for merging a default map with an overriding one.
The semantics favor the overrider with a twist to support a short-hand for lists that stand-in for maps of scalars to booleans. Specifically, lint rules can be enumerated as a list or as a map. To make this work, lists can be "promoted" to maps. In particular, if
linter:
rules:
- camel_case_types
- one_member_abstracts
is merged with
linter:
rules:
one_member_abstracts: false
always_specify_return_types: true
the right thing is done to get us to:
linter:
rules:
camel_case_types: true
one_member_abstracts: false
always_specify_return_types: true
R=brianwilkerson@google.com, johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1425393002 .
2. Do not initialize the stack limit in the vm isolate, get rid of InitializeStackLimit function.
3. Assert in StartIsolateScope that the thread enters an isolate without any nested scopes and the thread exits an isolate without any pending scopes.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1417523006 .
2. Added Dart::ShutDownIsolate(Isolate* isolate) to take care of ensuring that the isolate is entered before shutting it down and deal with the asymmetry on the way out.
R=zra@google.com
Review URL: https://codereview.chromium.org/1427583009 .