Skip to content

Commit 5aeda8f

Browse files
authored
timeout and catch error (microsoft#164169) (microsoft#164454)
1 parent f69482e commit 5aeda8f

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/vs/workbench/browser/web.main.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ import { ILabelService } from 'vs/platform/label/common/label';
8181
import { UserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfileService';
8282
import { IUserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfile';
8383
import { BrowserUserDataProfilesService } from 'vs/platform/userDataProfile/browser/userDataProfile';
84+
import { timeout } from 'vs/base/common/async';
8485

8586
export class BrowserMain extends Disposable {
8687

@@ -358,6 +359,20 @@ export class BrowserMain extends Disposable {
358359
const userDataInitializationService = new UserDataInitializationService(environmentService, credentialsService, userDataSyncStoreManagementService, fileService, userDataProfilesService, storageService, productService, requestService, logService, uriIdentityService);
359360
serviceCollection.set(IUserDataInitializationService, userDataInitializationService);
360361

362+
try {
363+
await Promise.race([
364+
// Do not block more than 5s
365+
timeout(5000),
366+
this.initializeUserData(userDataInitializationService, configurationService)]
367+
);
368+
} catch (error) {
369+
logService.error(error);
370+
}
371+
372+
return { serviceCollection, configurationService, logService };
373+
}
374+
375+
private async initializeUserData(userDataInitializationService: UserDataInitializationService, configurationService: WorkspaceService) {
361376
if (await userDataInitializationService.requiresInitialization()) {
362377
mark('code/willInitRequiredUserData');
363378

@@ -370,8 +385,6 @@ export class BrowserMain extends Disposable {
370385

371386
mark('code/didInitRequiredUserData');
372387
}
373-
374-
return { serviceCollection, configurationService, logService };
375388
}
376389

377390
private async registerFileSystemProviders(environmentService: IWorkbenchEnvironmentService, fileService: IWorkbenchFileService, remoteAgentService: IRemoteAgentService, logService: BufferLogService, logsPath: URI): Promise<void> {

0 commit comments

Comments
 (0)