@@ -622,7 +622,14 @@ export class CodeApplication extends Disposable {
622
622
623
623
// Set lifecycle phase to `Eventually` after a short delay and when idle (min 2.5sec, max 5sec)
624
624
const eventuallyPhaseScheduler = this . _register ( new RunOnceScheduler ( ( ) => {
625
- this . _register ( runWhenGlobalIdle ( ( ) => this . lifecycleMainService . phase = LifecycleMainPhase . Eventually , 2500 ) ) ;
625
+ this . _register ( runWhenGlobalIdle ( ( ) => {
626
+
627
+ // Signal phase: eventually
628
+ this . lifecycleMainService . phase = LifecycleMainPhase . Eventually ;
629
+
630
+ // Eventually Post Open Window Tasks
631
+ this . eventuallyAfterWindowOpen ( ) ;
632
+ } , 2500 ) ) ;
626
633
} , 2500 ) ) ;
627
634
eventuallyPhaseScheduler . schedule ( ) ;
628
635
}
@@ -1373,9 +1380,6 @@ export class CodeApplication extends Disposable {
1373
1380
if ( isMacintosh && app . runningUnderARM64Translation ) {
1374
1381
this . windowsMainService ?. sendToFocused ( 'vscode:showTranslatedBuildWarning' ) ;
1375
1382
}
1376
-
1377
- // Validate Device ID is up to date
1378
- validatedevDeviceId ( this . stateService , this . logService ) ;
1379
1383
}
1380
1384
1381
1385
private async installMutex ( ) : Promise < void > {
@@ -1451,4 +1455,11 @@ export class CodeApplication extends Disposable {
1451
1455
this . windowsMainService ?. sendToFocused ( 'vscode:showArgvParseWarning' ) ;
1452
1456
}
1453
1457
}
1458
+
1459
+ private eventuallyAfterWindowOpen ( ) : void {
1460
+
1461
+ // Validate Device ID is up to date (delay this as it has shown significant perf impact)
1462
+ // Refs: https://github.com/microsoft/vscode/issues/234064
1463
+ validatedevDeviceId ( this . stateService , this . logService ) ;
1464
+ }
1454
1465
}
0 commit comments