From ec5fe521b87ed3b2387e64bd9df641b721e6f9ce Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Thu, 17 Oct 2024 10:46:20 +0200 Subject: [PATCH] Shuffle directories when cleaning distributions --- .../ql-vscode/src/codeql-cli/distribution/cleaner.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/extensions/ql-vscode/src/codeql-cli/distribution/cleaner.ts b/extensions/ql-vscode/src/codeql-cli/distribution/cleaner.ts index 7fce00537..42dc17ba5 100644 --- a/extensions/ql-vscode/src/codeql-cli/distribution/cleaner.ts +++ b/extensions/ql-vscode/src/codeql-cli/distribution/cleaner.ts @@ -83,6 +83,15 @@ export class ExtensionManagedDistributionCleaner { return; } + // Shuffle the array so that multiple VS Code processes don't all try to clean up the same directory at the same time + for (let i = cleanableDirectories.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [cleanableDirectories[i], cleanableDirectories[j]] = [ + cleanableDirectories[j], + cleanableDirectories[i], + ]; + } + void this.logger.log( `Cleaning up ${cleanableDirectories.length} old versions of the CLI.`, );