src/vs/workbench/services/sharedProcess/electron-sandbox/sharedProcessWorkerWorkbenchService.ts/SharedProcessWorkerWorkbenchService/createWorker
class SharedProcessWorkerWorkbenchService:	async createWorker(process: ISharedProcessWorkerProcess): Promise<ISharedProcessWorker> {
		this.logService.trace('Renderer->SharedProcess#createWorker');

		// Get ready to acquire the message port from the shared process worker
		const nonce = generateUuid();
		const responseChannel = 'vscode:createSharedProcessWorkerMessageChannelResult';
		const portPromise = acquirePort(undefined /* we trigger the request via service call! */, responseChannel, nonce);

		// Actually talk with the shared process service
		// to create a new process from a worker
		const onDidTerminate = this.sharedProcessWorkerService.createWorker({
			process,
			reply: { windowId: this.windowId, channel: responseChannel, nonce }
		});

		// Dispose worker upon disposal via shared process service
		const disposables = new DisposableStore();
		disposables.add(toDisposable(() => {
			this.logService.trace('Renderer->SharedProcess#disposeWorker', process);

			this.sharedProcessWorkerService.disposeWorker({
				process,
				reply: { windowId: this.windowId }
			});
		}));

		const port = await portPromise;
		const client = disposables.add(new MessagePortClient(port, `window:${this.windowId},module:${process.moduleId}`));
		this.logService.trace('Renderer->SharedProcess#createWorkerChannel: connection established');

		return { client, onDidTerminate, dispose: () => disposables.dispose() };
	}