@@ -384,29 +384,33 @@ function reportMacCrashes(): void {
384384 }
385385
386386 // vscode.workspace.createFileSystemWatcher only works in workspace folders.
387- fs . watch ( crashFolder , ( event , filename ) => {
388- if ( event !== "rename" ) {
389- return ;
390- }
391- if ( filename === prevCrashFile ) {
392- return ;
393- }
394- prevCrashFile = filename ;
395- if ( ! filename . startsWith ( "Microsoft.VSCode.CPP." ) ) {
396- return ;
397- }
398- // Wait 5 seconds to allow time for the crash log to finish being written.
399- setTimeout ( ( ) => {
400- fs . readFile ( path . resolve ( crashFolder , filename ) , 'utf8' , ( err , data ) => {
401- if ( err ) {
402- // Try again?
403- fs . readFile ( path . resolve ( crashFolder , filename ) , 'utf8' , handleCrashFileRead ) ;
404- return ;
405- }
406- handleCrashFileRead ( err , data ) ;
407- } ) ;
408- } , 5000 ) ;
409- } ) ;
387+ try {
388+ fs . watch ( crashFolder , ( event , filename ) => {
389+ if ( event !== "rename" ) {
390+ return ;
391+ }
392+ if ( filename === prevCrashFile ) {
393+ return ;
394+ }
395+ prevCrashFile = filename ;
396+ if ( ! filename . startsWith ( "Microsoft.VSCode.CPP." ) ) {
397+ return ;
398+ }
399+ // Wait 5 seconds to allow time for the crash log to finish being written.
400+ setTimeout ( ( ) => {
401+ fs . readFile ( path . resolve ( crashFolder , filename ) , 'utf8' , ( err , data ) => {
402+ if ( err ) {
403+ // Try again?
404+ fs . readFile ( path . resolve ( crashFolder , filename ) , 'utf8' , handleCrashFileRead ) ;
405+ return ;
406+ }
407+ handleCrashFileRead ( err , data ) ;
408+ } ) ;
409+ } , 5000 ) ;
410+ } ) ;
411+ } catch ( e ) {
412+ // The file watcher limit is hit (may not be possible on Mac, but just in case).
413+ }
410414 } ) ;
411415 }
412416}
0 commit comments