source: trip-planner-front/node_modules/@angular/compiler-cli/ngcc/src/execution/tasks/queues/parallel_task_queue.js@ 6a3a178

Last change on this file since 6a3a178 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 11.1 KB
Line 
1(function (factory) {
2 if (typeof module === "object" && typeof module.exports === "object") {
3 var v = factory(require, exports);
4 if (v !== undefined) module.exports = v;
5 }
6 else if (typeof define === "function" && define.amd) {
7 define("@angular/compiler-cli/ngcc/src/execution/tasks/queues/parallel_task_queue", ["require", "exports", "tslib", "@angular/compiler-cli/ngcc/src/execution/tasks/utils", "@angular/compiler-cli/ngcc/src/execution/tasks/queues/base_task_queue"], factory);
8 }
9})(function (require, exports) {
10 "use strict";
11 Object.defineProperty(exports, "__esModule", { value: true });
12 exports.ParallelTaskQueue = void 0;
13 var tslib_1 = require("tslib");
14 var utils_1 = require("@angular/compiler-cli/ngcc/src/execution/tasks/utils");
15 var base_task_queue_1 = require("@angular/compiler-cli/ngcc/src/execution/tasks/queues/base_task_queue");
16 /**
17 * A `TaskQueue` implementation that assumes tasks are processed in parallel, thus has to ensure a
18 * task's dependencies have been processed before processing the task.
19 */
20 var ParallelTaskQueue = /** @class */ (function (_super) {
21 tslib_1.__extends(ParallelTaskQueue, _super);
22 function ParallelTaskQueue(logger, tasks, dependencies) {
23 var _this = _super.call(this, logger, utils_1.sortTasksByPriority(tasks, dependencies), dependencies) || this;
24 _this.blockedTasks = utils_1.getBlockedTasks(dependencies);
25 return _this;
26 }
27 ParallelTaskQueue.prototype.computeNextTask = function () {
28 var _this = this;
29 // Look for the first available (i.e. not blocked) task.
30 // (NOTE: Since tasks are sorted by priority, the first available one is the best choice.)
31 var nextTaskIdx = this.tasks.findIndex(function (task) { return !_this.blockedTasks.has(task); });
32 if (nextTaskIdx === -1)
33 return null;
34 // Remove the task from the list of available tasks and add it to the list of in-progress tasks.
35 var nextTask = this.tasks[nextTaskIdx];
36 this.tasks.splice(nextTaskIdx, 1);
37 this.inProgressTasks.add(nextTask);
38 return nextTask;
39 };
40 ParallelTaskQueue.prototype.markAsCompleted = function (task) {
41 var e_1, _a;
42 _super.prototype.markAsCompleted.call(this, task);
43 if (!this.dependencies.has(task)) {
44 return;
45 }
46 try {
47 // Unblock the tasks that are dependent upon `task`
48 for (var _b = tslib_1.__values(this.dependencies.get(task)), _c = _b.next(); !_c.done; _c = _b.next()) {
49 var dependentTask = _c.value;
50 if (this.blockedTasks.has(dependentTask)) {
51 var blockingTasks = this.blockedTasks.get(dependentTask);
52 // Remove the completed task from the lists of tasks blocking other tasks.
53 blockingTasks.delete(task);
54 if (blockingTasks.size === 0) {
55 // If the dependent task is not blocked any more, mark it for unblocking.
56 this.blockedTasks.delete(dependentTask);
57 }
58 }
59 }
60 }
61 catch (e_1_1) { e_1 = { error: e_1_1 }; }
62 finally {
63 try {
64 if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
65 }
66 finally { if (e_1) throw e_1.error; }
67 }
68 };
69 ParallelTaskQueue.prototype.toString = function () {
70 return _super.prototype.toString.call(this) + "\n" +
71 (" Blocked tasks (" + this.blockedTasks.size + "): " + this.stringifyBlockedTasks(' '));
72 };
73 ParallelTaskQueue.prototype.stringifyBlockedTasks = function (indentation) {
74 var _this = this;
75 return Array.from(this.blockedTasks)
76 .map(function (_a) {
77 var _b = tslib_1.__read(_a, 2), task = _b[0], blockingTasks = _b[1];
78 return "\n" + indentation + "- " + utils_1.stringifyTask(task) + " (" + blockingTasks.size + "): " +
79 _this.stringifyTasks(Array.from(blockingTasks), indentation + " ");
80 })
81 .join('');
82 };
83 return ParallelTaskQueue;
84 }(base_task_queue_1.BaseTaskQueue));
85 exports.ParallelTaskQueue = ParallelTaskQueue;
86});
87//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWxfdGFza19xdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9uZ2NjL3NyYy9leGVjdXRpb24vdGFza3MvcXVldWVzL3BhcmFsbGVsX3Rhc2tfcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQVNBLDhFQUE2RTtJQUM3RSx5R0FBZ0Q7SUFFaEQ7OztPQUdHO0lBQ0g7UUFBdUMsNkNBQWE7UUFRbEQsMkJBQVksTUFBYyxFQUFFLEtBQTRCLEVBQUUsWUFBOEI7WUFBeEYsWUFDRSxrQkFBTSxNQUFNLEVBQUUsMkJBQW1CLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxFQUFFLFlBQVksQ0FBQyxTQUV0RTtZQURDLEtBQUksQ0FBQyxZQUFZLEdBQUcsdUJBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQzs7UUFDcEQsQ0FBQztRQUVRLDJDQUFlLEdBQXhCO1lBQUEsaUJBWUM7WUFYQyx3REFBd0Q7WUFDeEQsMEZBQTBGO1lBQzFGLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsQ0FBQyxLQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBNUIsQ0FBNEIsQ0FBQyxDQUFDO1lBQy9FLElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUVwQyxnR0FBZ0c7WUFDaEcsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFbkMsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVRLDJDQUFlLEdBQXhCLFVBQXlCLElBQVU7O1lBQ2pDLGlCQUFNLGVBQWUsWUFBQyxJQUFJLENBQUMsQ0FBQztZQUU1QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2hDLE9BQU87YUFDUjs7Z0JBRUQsbURBQW1EO2dCQUNuRCxLQUE0QixJQUFBLEtBQUEsaUJBQUEsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUEsZ0JBQUEsNEJBQUU7b0JBQXJELElBQU0sYUFBYSxXQUFBO29CQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO3dCQUN4QyxJQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUUsQ0FBQzt3QkFDNUQsMEVBQTBFO3dCQUMxRSxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUMzQixJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFOzRCQUM1Qix5RUFBeUU7NEJBQ3pFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO3lCQUN6QztxQkFDRjtpQkFDRjs7Ozs7Ozs7O1FBQ0gsQ0FBQztRQUVRLG9DQUFRLEdBQWpCO1lBQ0UsT0FBVSxpQkFBTSxRQUFRLFdBQUUsT0FBSTtpQkFDMUIsc0JBQW9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxXQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUcsQ0FBQSxDQUFDO1FBQzNGLENBQUM7UUFFTyxpREFBcUIsR0FBN0IsVUFBOEIsV0FBbUI7WUFBakQsaUJBT0M7WUFOQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztpQkFDL0IsR0FBRyxDQUNBLFVBQUMsRUFBcUI7b0JBQXJCLEtBQUEscUJBQXFCLEVBQXBCLElBQUksUUFBQSxFQUFFLGFBQWEsUUFBQTtnQkFDakIsT0FBQSxPQUFLLFdBQVcsVUFBSyxxQkFBYSxDQUFDLElBQUksQ0FBQyxVQUFLLGFBQWEsQ0FBQyxJQUFJLFFBQUs7b0JBQ3BFLEtBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBSyxXQUFXLFNBQU0sQ0FBQztZQURwRSxDQUNvRSxDQUFDO2lCQUM1RSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNILHdCQUFDO0lBQUQsQ0FBQyxBQTdERCxDQUF1QywrQkFBYSxHQTZEbkQ7SUE3RFksOENBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc3JjL25ndHNjL2xvZ2dpbmcnO1xuaW1wb3J0IHtQYXJ0aWFsbHlPcmRlcmVkVGFza3MsIFRhc2ssIFRhc2tEZXBlbmRlbmNpZXN9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQge2dldEJsb2NrZWRUYXNrcywgc29ydFRhc2tzQnlQcmlvcml0eSwgc3RyaW5naWZ5VGFza30gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtCYXNlVGFza1F1ZXVlfSBmcm9tICcuL2Jhc2VfdGFza19xdWV1ZSc7XG5cbi8qKlxuICogQSBgVGFza1F1ZXVlYCBpbXBsZW1lbnRhdGlvbiB0aGF0IGFzc3VtZXMgdGFza3MgYXJlIHByb2Nlc3NlZCBpbiBwYXJhbGxlbCwgdGh1cyBoYXMgdG8gZW5zdXJlIGFcbiAqIHRhc2sncyBkZXBlbmRlbmNpZXMgaGF2ZSBiZWVuIHByb2Nlc3NlZCBiZWZvcmUgcHJvY2Vzc2luZyB0aGUgdGFzay5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhcmFsbGVsVGFza1F1ZXVlIGV4dGVuZHMgQmFzZVRhc2tRdWV1ZSB7XG4gIC8qKlxuICAgKiBBIG1hcCBmcm9tIFRhc2tzIHRvIHRoZSBUYXNrcyB0aGF0IGl0IGRlcGVuZHMgdXBvbi5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgcmV2ZXJzZSBtYXBwaW5nIG9mIGBUYXNrRGVwZW5kZW5jaWVzYC5cbiAgICovXG4gIHByaXZhdGUgYmxvY2tlZFRhc2tzOiBNYXA8VGFzaywgU2V0PFRhc2s+PjtcblxuICBjb25zdHJ1Y3Rvcihsb2dnZXI6IExvZ2dlciwgdGFza3M6IFBhcnRpYWxseU9yZGVyZWRUYXNrcywgZGVwZW5kZW5jaWVzOiBUYXNrRGVwZW5kZW5jaWVzKSB7XG4gICAgc3VwZXIobG9nZ2VyLCBzb3J0VGFza3NCeVByaW9yaXR5KHRhc2tzLCBkZXBlbmRlbmNpZXMpLCBkZXBlbmRlbmNpZXMpO1xuICAgIHRoaXMuYmxvY2tlZFRhc2tzID0gZ2V0QmxvY2tlZFRhc2tzKGRlcGVuZGVuY2llcyk7XG4gIH1cblxuICBvdmVycmlkZSBjb21wdXRlTmV4dFRhc2soKTogVGFza3xudWxsIHtcbiAgICAvLyBMb29rIGZvciB0aGUgZmlyc3QgYXZhaWxhYmxlIChpLmUuIG5vdCBibG9ja2VkKSB0YXNrLlxuICAgIC8vIChOT1RFOiBTaW5jZSB0YXNrcyBhcmUgc29ydGVkIGJ5IHByaW9yaXR5LCB0aGUgZmlyc3QgYXZhaWxhYmxlIG9uZSBpcyB0aGUgYmVzdCBjaG9pY2UuKVxuICAgIGNvbnN0IG5leHRUYXNrSWR4ID0gdGhpcy50YXNrcy5maW5kSW5kZXgodGFzayA9PiAhdGhpcy5ibG9ja2VkVGFza3MuaGFzKHRhc2spKTtcbiAgICBpZiAobmV4dFRhc2tJZHggPT09IC0xKSByZXR1cm4gbnVsbDtcblxuICAgIC8vIFJlbW92ZSB0aGUgdGFzayBmcm9tIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSB0YXNrcyBhbmQgYWRkIGl0IHRvIHRoZSBsaXN0IG9mIGluLXByb2dyZXNzIHRhc2tzLlxuICAgIGNvbnN0IG5leHRUYXNrID0gdGhpcy50YXNrc1tuZXh0VGFza0lkeF07XG4gICAgdGhpcy50YXNrcy5zcGxpY2UobmV4dFRhc2tJZHgsIDEpO1xuICAgIHRoaXMuaW5Qcm9ncmVzc1Rhc2tzLmFkZChuZXh0VGFzayk7XG5cbiAgICByZXR1cm4gbmV4dFRhc2s7XG4gIH1cblxuICBvdmVycmlkZSBtYXJrQXNDb21wbGV0ZWQodGFzazogVGFzayk6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc0NvbXBsZXRlZCh0YXNrKTtcblxuICAgIGlmICghdGhpcy5kZXBlbmRlbmNpZXMuaGFzKHRhc2spKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVW5ibG9jayB0aGUgdGFza3MgdGhhdCBhcmUgZGVwZW5kZW50IHVwb24gYHRhc2tgXG4gICAgZm9yIChjb25zdCBkZXBlbmRlbnRUYXNrIG9mIHRoaXMuZGVwZW5kZW5jaWVzLmdldCh0YXNrKSEpIHtcbiAgICAgIGlmICh0aGlzLmJsb2NrZWRUYXNrcy5oYXMoZGVwZW5kZW50VGFzaykpIHtcbiAgICAgICAgY29uc3QgYmxvY2tpbmdUYXNrcyA9IHRoaXMuYmxvY2tlZFRhc2tzLmdldChkZXBlbmRlbnRUYXNrKSE7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY29tcGxldGVkIHRhc2sgZnJvbSB0aGUgbGlzdHMgb2YgdGFza3MgYmxvY2tpbmcgb3RoZXIgdGFza3MuXG4gICAgICAgIGJsb2NraW5nVGFza3MuZGVsZXRlKHRhc2spO1xuICAgICAgICBpZiAoYmxvY2tpbmdUYXNrcy5zaXplID09PSAwKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIGRlcGVuZGVudCB0YXNrIGlzIG5vdCBibG9ja2VkIGFueSBtb3JlLCBtYXJrIGl0IGZvciB1bmJsb2NraW5nLlxuICAgICAgICAgIHRoaXMuYmxvY2tlZFRhc2tzLmRlbGV0ZShkZXBlbmRlbnRUYXNrKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3N1cGVyLnRvU3RyaW5nKCl9XFxuYCArXG4gICAgICAgIGAgIEJsb2NrZWQgdGFza3MgKCR7dGhpcy5ibG9ja2VkVGFza3Muc2l6ZX0pOiAke3RoaXMuc3RyaW5naWZ5QmxvY2tlZFRhc2tzKCcgICAgJyl9YDtcbiAgfVxuXG4gIHByaXZhdGUgc3RyaW5naWZ5QmxvY2tlZFRhc2tzKGluZGVudGF0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuYmxvY2tlZFRhc2tzKVxuICAgICAgICAubWFwKFxuICAgICAgICAgICAgKFt0YXNrLCBibG9ja2luZ1Rhc2tzXSkgPT5cbiAgICAgICAgICAgICAgICBgXFxuJHtpbmRlbnRhdGlvbn0tICR7c3RyaW5naWZ5VGFzayh0YXNrKX0gKCR7YmxvY2tpbmdUYXNrcy5zaXplfSk6IGAgK1xuICAgICAgICAgICAgICAgIHRoaXMuc3RyaW5naWZ5VGFza3MoQXJyYXkuZnJvbShibG9ja2luZ1Rhc2tzKSwgYCR7aW5kZW50YXRpb259ICAgIGApKVxuICAgICAgICAuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==
Note: See TracBrowser for help on using the repository browser.