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

Unified Diff: sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart

Issue 600293002: Add some additional annotations for tracking pub performance. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart
diff --git a/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart b/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart
index eadf9a997c76aec1888035644eb5d7fcd0ff9d6b..c3df8ce1fee3c9bcdc3a58043b5730fe9b877d24 100644
--- a/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart
+++ b/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart
@@ -526,35 +526,125 @@ class Entrypoint {
});
}
Future<PackageGraph> loadPackageGraph([SolveResult result]) {
- if (_packageGraph != null) return new Future.value(_packageGraph);
- return new Future.sync(() {
- if (result != null) {
- return Future.wait(result.packages.map((id) {
- return cache.sources[id.source].getDirectory(
- id).then((dir) => new Package(result.pubspecs[id.name], dir));
- })).then((packages) {
- return new PackageGraph(
- this,
- new LockFile(result.packages),
- new Map.fromIterable(packages, key: (package) => package.name));
- });
- } else {
- return ensureLockFileIsUpToDate().then((_) {
- return Future.wait(lockFile.packages.values.map((id) {
- var source = cache.sources[id.source];
- return source.getDirectory(
- id).then((dir) => new Package.load(id.name, dir, cache.sources));
- })).then((packages) {
- var packageMap = new Map.fromIterable(packages, key: (p) => p.name);
- packageMap[root.name] = root;
- return new PackageGraph(this, lockFile, packageMap);
+ final completer0 = new Completer();
+ scheduleMicrotask(() {
+ try {
+ join0() {
+ log.progress("Loading package graph", (() {
+ final completer0 = new Completer();
+ scheduleMicrotask(() {
+ try {
+ join0() {
+ ensureLockFileIsUpToDate().then((x0) {
+ try {
+ x0;
+ Future.wait(lockFile.packages.values.map(((id) {
+ final completer0 = new Completer();
+ scheduleMicrotask(() {
+ try {
+ var source = cache.sources[id.source];
+ source.getDirectory(id).then((x0) {
+ try {
+ var dir = x0;
+ completer0.complete(
+ new Package.load(id.name, dir, cache.sources));
+ } catch (e0) {
+ completer0.completeError(e0);
+ }
+ }, onError: (e1) {
+ completer0.completeError(e1);
+ });
+ } catch (e2) {
+ completer0.completeError(e2);
+ }
+ });
+ return completer0.future;
+ }))).then((x1) {
+ try {
+ var packages = x1;
+ var packageMap =
+ new Map.fromIterable(packages, key: ((p) => p.name));
+ packageMap[root.name] = root;
+ completer0.complete(
+ new PackageGraph(this, lockFile, packageMap));
+ } catch (e1) {
+ completer0.completeError(e1);
+ }
+ }, onError: (e2) {
+ completer0.completeError(e2);
+ });
+ } catch (e0) {
+ completer0.completeError(e0);
+ }
+ }, onError: (e3) {
+ completer0.completeError(e3);
+ });
+ }
+ if (result != null) {
+ Future.wait(result.packages.map(((id) {
+ final completer0 = new Completer();
+ scheduleMicrotask(() {
+ try {
+ cache.sources[id.source].getDirectory(id).then((x0) {
+ try {
+ var dir = x0;
+ completer0.complete(
+ new Package(result.pubspecs[id.name], dir));
+ } catch (e0) {
+ completer0.completeError(e0);
+ }
+ }, onError: (e1) {
+ completer0.completeError(e1);
+ });
+ } catch (e2) {
+ completer0.completeError(e2);
+ }
+ });
+ return completer0.future;
+ }))).then((x2) {
+ try {
+ var packages = x2;
+ completer0.complete(
+ new PackageGraph(
+ this,
+ new LockFile(result.packages),
+ new Map.fromIterable(packages, key: ((package) => package.name))));
+ } catch (e4) {
+ completer0.completeError(e4);
+ }
+ }, onError: (e5) {
+ completer0.completeError(e5);
+ });
+ } else {
+ join0();
+ }
+ } catch (e6) {
+ completer0.completeError(e6);
+ }
+ });
+ return completer0.future;
+ }), fine: true).then((x0) {
+ try {
+ var graph = x0;
+ _packageGraph = graph;
+ completer0.complete(graph);
+ } catch (e0) {
+ completer0.completeError(e0);
+ }
+ }, onError: (e1) {
+ completer0.completeError(e1);
});
- });
+ }
+ if (_packageGraph != null) {
+ completer0.complete(_packageGraph);
+ } else {
+ join0();
+ }
+ } catch (e2) {
+ completer0.completeError(e2);
}
- }).then((graph) {
- _packageGraph = graph;
- return graph;
});
+ return completer0.future;
}
void _saveLockFile(List<PackageId> packageIds) {
_lockFile = new LockFile(packageIds);

Powered by Google App Engine
This is Rietveld 408576698