From dd86c96b821d87c063a9e9beda4ac066a159e948 Mon Sep 17 00:00:00 2001 From: Karthik Nadig Date: Mon, 2 Feb 2026 09:16:28 -0800 Subject: [PATCH 1/2] Refactor NativePythonFinderImpl to manage disposables more effectively --- .vscode/settings.json | 3 ++- src/managers/common/nativePythonFinder.ts | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5558607c..eeb196a5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -27,5 +27,6 @@ "prettier.tabWidth": 4, "python-envs.defaultEnvManager": "ms-python.python:venv", "python-envs.pythonProjects": [], - "git.branchRandomName.enable": true + "git.branchRandomName.enable": true, + "git.branchProtection": ["main"] } diff --git a/src/managers/common/nativePythonFinder.ts b/src/managers/common/nativePythonFinder.ts index d0765c29..7e9bde39 100644 --- a/src/managers/common/nativePythonFinder.ts +++ b/src/managers/common/nativePythonFinder.ts @@ -108,6 +108,7 @@ class NativePythonFinderImpl implements NativePythonFinder { private readonly connection: rpc.MessageConnection; private readonly pool: WorkerPool; private cache: Map = new Map(); + private readonly startDisposables: Disposable[] = []; constructor( private readonly outputChannel: LogOutputChannel, @@ -192,6 +193,8 @@ class NativePythonFinderImpl implements NativePythonFinder { } public dispose() { + this.pool.stop(); + this.startDisposables.forEach((d) => d.dispose()); this.connection.dispose(); } @@ -221,14 +224,13 @@ class NativePythonFinderImpl implements NativePythonFinder { // we have got the exit event. const readable = new PassThrough(); const writable = new PassThrough(); - const disposables: Disposable[] = []; try { const proc = spawnProcess(this.toolPath, ['server'], { env: process.env, stdio: 'pipe' }); proc.stdout.pipe(readable, { end: false }); proc.stderr.on('data', (data) => this.outputChannel.error(`[pet] ${data.toString()}`)); writable.pipe(proc.stdin, { end: false }); - disposables.push({ + this.startDisposables.push({ dispose: () => { try { if (proc.exitCode === null) { @@ -246,7 +248,7 @@ class NativePythonFinderImpl implements NativePythonFinder { new rpc.StreamMessageReader(readable), new rpc.StreamMessageWriter(writable), ); - disposables.push( + this.startDisposables.push( connection, new Disposable(() => { readable.end(); @@ -276,7 +278,7 @@ class NativePythonFinderImpl implements NativePythonFinder { }), connection.onNotification('telemetry', (data) => this.outputChannel.info('[pet] Telemetry: ', data)), connection.onClose(() => { - disposables.forEach((d) => d.dispose()); + this.startDisposables.forEach((d) => d.dispose()); }), ); From 799f7b7debb140d8fedfac5bad0d3e551f0731ce Mon Sep 17 00:00:00 2001 From: Karthik Nadig Date: Mon, 2 Feb 2026 09:17:25 -0800 Subject: [PATCH 2/2] . --- .vscode/settings.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index eeb196a5..ed95cc87 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -28,5 +28,6 @@ "python-envs.defaultEnvManager": "ms-python.python:venv", "python-envs.pythonProjects": [], "git.branchRandomName.enable": true, - "git.branchProtection": ["main"] + "git.branchProtection": ["main"], + "git.branchProtectionPrompt": "alwaysCommitToNewBranch" }