diff --git a/src/vs/base/parts/ipc/node/ipc.net.ts b/src/vs/base/parts/ipc/node/ipc.net.ts index 2b6c70afa70200f162acbf458364c5294410648c..116b889597f5af26018a3fa809dd3ec29f3ff491 100644 --- a/src/vs/base/parts/ipc/node/ipc.net.ts +++ b/src/vs/base/parts/ipc/node/ipc.net.ts @@ -296,14 +296,19 @@ function unmask(buffer: VSBuffer, mask: number): void { } } +// Read this before there's any chance it is overwritten +const xdgRuntimeDir = process.env['XDG_RUNTIME_DIR']; + export function generateRandomPipeName(): string { const randomSuffix = generateUuid(); if (process.platform === 'win32') { return `\\\\.\\pipe\\vscode-ipc-${randomSuffix}-sock`; - } else { - // Mac/Unix: use socket file - return join(tmpdir(), `vscode-ipc-${randomSuffix}.sock`); } + // Mac/Unix: use socket file + if (xdgRuntimeDir) { + return join(xdgRuntimeDir, `vscode-ipc-${randomSuffix}.sock`); + } + return join(tmpdir(), `vscode-ipc-${randomSuffix}.sock`); } export class Server extends IPCServer {