Skip to content

Commit

Permalink
Try to use spawn instead of fork
Browse files Browse the repository at this point in the history
  • Loading branch information
alexdima committed Oct 26, 2021
1 parent 6f72d1b commit 2af65ef
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions src/vs/platform/extensions/node/extensionHostStarter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { SerializedError, transformErrorForSerialization } from 'vs/base/common/
import { Disposable, IDisposable } from 'vs/base/common/lifecycle';
import { IExtensionHostProcessOptions, IExtensionHostStarter } from 'vs/platform/extensions/common/extensionHostStarter';
import { Emitter, Event } from 'vs/base/common/event';
import { ChildProcess, fork } from 'child_process';
import { ChildProcess, spawn } from 'child_process';
import { FileAccess } from 'vs/base/common/network';
import { StringDecoder } from 'string_decoder';
import * as platform from 'vs/base/common/platform';
Expand Down Expand Up @@ -54,11 +54,18 @@ class ExtensionHostProcess extends Disposable {

start(opts: IExtensionHostProcessOptions): { pid: number; } {
const sw = StopWatch.create(false);
this._process = fork(
FileAccess.asFileUri('bootstrap-fork', require).fsPath,
['--type=extensionHost', '--skipWorkspaceStorageLock'],
opts.env = opts.env || {};
opts.env.ELECTRON_RUN_AS_NODE = '1';
this._process = spawn(
process.execPath,
[FileAccess.asFileUri('bootstrap-fork', require).fsPath, '--type=extensionHost', '--skipWorkspaceStorageLock'],
mixin({ cwd: cwd() }, opts),
);
// this._process = fork(
// FileAccess.asFileUri('bootstrap-fork', require).fsPath,
// ['--type=extensionHost', '--skipWorkspaceStorageLock'],
// mixin({ cwd: cwd() }, opts),
// );
const forkTime = sw.elapsed();
const pid = this._process.pid;

Expand All @@ -76,9 +83,9 @@ class ExtensionHostProcess extends Disposable {
this._onStderr.fire(strChunk);
});

this._process.on('message', msg => {
this._onMessage.fire(msg);
});
// this._process.on('message', msg => {
// this._onMessage.fire(msg);
// });

this._process.on('error', (err) => {
this._onError.fire({ error: transformErrorForSerialization(err) });
Expand Down

0 comments on commit 2af65ef

Please sign in to comment.