Index: sdk/lib/_internal/pub_generated/lib/src/source/hosted.dart |
diff --git a/sdk/lib/_internal/pub_generated/lib/src/source/hosted.dart b/sdk/lib/_internal/pub_generated/lib/src/source/hosted.dart |
index 3f02137024d4c84459ff8a28c62d743270b83a96..bc4bcd5e8c2294cae6dbea82b5c3545dad03f829 100644 |
--- a/sdk/lib/_internal/pub_generated/lib/src/source/hosted.dart |
+++ b/sdk/lib/_internal/pub_generated/lib/src/source/hosted.dart |
@@ -148,66 +148,68 @@ class HostedSource extends CachedSource { |
var packages = |
_getCachedPackagesInDirectory(path.basename(serverDir)); |
packages.sort(Package.orderByNameAndVersion); |
- var it1 = packages.iterator; |
- break1() { |
- trampoline0 = continue0; |
- } |
- var trampoline1; |
- continue1() { |
- trampoline1 = null; |
- if (it1.moveNext()) { |
- var package = it1.current; |
- join1() { |
- trampoline1 = continue1; |
- } |
- catch0(error, stackTrace) { |
- try { |
- failures++; |
- var message = |
- "Failed to repair ${log.bold(package.name)} " "${package.version}"; |
- join2() { |
- log.error("${message}. Error:\n${error}"); |
- log.fine(stackTrace); |
- tryDeleteEntry(package.dir); |
- join1(); |
- } |
- if (url != defaultUrl) { |
- message += " from ${url}"; |
- join2(); |
- } else { |
- join2(); |
+ Future.forEach(packages, ((package) { |
+ final completer0 = new Completer(); |
+ scheduleMicrotask(() { |
+ try { |
+ join0() { |
+ completer0.complete(); |
+ } |
+ catch0(error, stackTrace) { |
+ try { |
+ failures++; |
+ var message = |
+ "Failed to repair ${log.bold(package.name)} " "${package.version}"; |
+ join1() { |
+ log.error("${message}. Error:\n${error}"); |
+ log.fine(stackTrace); |
+ tryDeleteEntry(package.dir); |
+ join0(); |
+ } |
+ if (url != defaultUrl) { |
+ message += " from ${url}"; |
+ join1(); |
+ } else { |
+ join1(); |
+ } |
+ } catch (error, stackTrace) { |
+ completer0.completeError(error, stackTrace); |
} |
- } catch (error, stackTrace) { |
- completer0.completeError(error, stackTrace); |
} |
- } |
- try { |
- _download( |
- url, |
- package.name, |
- package.version, |
- package.dir).then((x0) { |
- trampoline1 = () { |
- trampoline1 = null; |
+ try { |
+ _download( |
+ url, |
+ package.name, |
+ package.version, |
+ package.dir).then((x0) { |
try { |
x0; |
successes++; |
- join1(); |
+ join0(); |
} catch (e0, s0) { |
catch0(e0, s0); |
} |
- }; |
- do trampoline1(); while (trampoline1 != null); |
- }, onError: catch0); |
- } catch (e1, s1) { |
- catch0(e1, s1); |
+ }, onError: catch0); |
+ } catch (e1, s1) { |
+ catch0(e1, s1); |
+ } |
+ } catch (e, s) { |
+ completer0.completeError(e, s); |
+ } |
+ }); |
+ return completer0.future; |
+ })).then((x0) { |
+ trampoline0 = () { |
+ trampoline0 = null; |
+ try { |
+ x0; |
+ trampoline0 = continue0; |
+ } catch (e0, s0) { |
+ completer0.completeError(e0, s0); |
} |
- } else { |
- break1(); |
- } |
- } |
- trampoline1 = continue1; |
- do trampoline1(); while (trampoline1 != null); |
+ }; |
+ do trampoline0(); while (trampoline0 != null); |
+ }, onError: completer0.completeError); |
} else { |
break0(); |
} |