This reverts commit 66effde9f3
.
PR Close #36637
This commit is contained in:

committed by
Matias Niemelä

parent
bfda7ca5bd
commit
2ed7146393
@ -1,42 +0,0 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright Google Inc. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style license that can be
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
/// <reference types="node" />
|
||||
|
||||
import {ChildProcess} from 'child_process';
|
||||
import * as cluster from 'cluster';
|
||||
|
||||
import {AbsoluteFsPath} from '../../../../src/ngtsc/file_system';
|
||||
import {LockFileWithChildProcess} from '../../locking/lock_file_with_child_process';
|
||||
|
||||
|
||||
/**
|
||||
* A `LockFileWithChildProcess` that is `cluster`-aware and does not spawn unlocker processes from
|
||||
* worker processes (only from the master process, which does the locking).
|
||||
*/
|
||||
export class ClusterLockFileWithChildProcess extends LockFileWithChildProcess {
|
||||
write(): void {
|
||||
if (!cluster.isMaster) {
|
||||
// This is a worker process:
|
||||
// This method should only be on the master process.
|
||||
throw new Error('Tried to create a lock-file from a worker process.');
|
||||
}
|
||||
|
||||
return super.write();
|
||||
}
|
||||
|
||||
protected createUnlocker(path: AbsoluteFsPath): ChildProcess|null {
|
||||
if (cluster.isMaster) {
|
||||
// This is the master process:
|
||||
// Create the unlocker.
|
||||
return super.createUnlocker(path);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
@ -78,7 +78,7 @@ export class LockFileWithChildProcess implements LockFile {
|
||||
}
|
||||
}
|
||||
|
||||
protected createUnlocker(path: AbsoluteFsPath): ChildProcess|null {
|
||||
protected createUnlocker(path: AbsoluteFsPath): ChildProcess {
|
||||
this.logger.debug('Forking unlocker child-process');
|
||||
const logLevel =
|
||||
this.logger.level !== undefined ? this.logger.level.toString() : LogLevel.info.toString();
|
||||
|
@ -27,7 +27,6 @@ import {EntryPointFinder} from './entry_point_finder/interface';
|
||||
import {TargetedEntryPointFinder} from './entry_point_finder/targeted_entry_point_finder';
|
||||
import {AnalyzeEntryPointsFn, CreateCompileFn, Executor} from './execution/api';
|
||||
import {ClusterExecutor} from './execution/cluster/executor';
|
||||
import {ClusterLockFileWithChildProcess} from './execution/cluster/lock_file_with_child_process';
|
||||
import {ClusterPackageJsonUpdater} from './execution/cluster/package_json_updater';
|
||||
import {SingleProcessExecutorAsync, SingleProcessExecutorSync} from './execution/single_process_executor';
|
||||
import {CreateTaskCompletedCallback, PartiallyOrderedTasks, Task, TaskProcessingOutcome, TaskQueue} from './execution/tasks/api';
|
||||
@ -429,8 +428,7 @@ function getCreateTaskCompletedCallback(
|
||||
function getExecutor(
|
||||
async: boolean, inParallel: boolean, logger: Logger, pkgJsonUpdater: PackageJsonUpdater,
|
||||
fileSystem: FileSystem, createTaskCompletedCallback: CreateTaskCompletedCallback): Executor {
|
||||
const lockFile = inParallel ? new ClusterLockFileWithChildProcess(fileSystem, logger) :
|
||||
new LockFileWithChildProcess(fileSystem, logger);
|
||||
const lockFile = new LockFileWithChildProcess(fileSystem, logger);
|
||||
if (async) {
|
||||
// Execute asynchronously (either serially or in parallel)
|
||||
const locker = new AsyncLocker(lockFile, logger, 500, 50);
|
||||
|
Reference in New Issue
Block a user