We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 2e33027 commit 2cca514Copy full SHA for 2cca514
1 file changed
Extension/src/LanguageServer/clientCollection.ts
@@ -91,7 +91,11 @@ export class ClientCollection {
91
}
92
93
public forEach(callback: (client: cpptools.Client) => void): void {
94
- this.languageClients.forEach(callback);
+ // Copy this.languageClients to languageClients to avoid an infinite foreach loop
95
+ // when callback modifies this.languageClients (e.g. when cpptools crashes).
96
+ const languageClients: cpptools.Client[] = [];
97
+ this.languageClients.forEach(client => languageClients.push(client));
98
+ languageClients.forEach(callback);
99
100
101
public checkOwnership(client: cpptools.Client, document: vscode.TextDocument): boolean {
0 commit comments