@@ -420,26 +420,29 @@ public void Done()
420
420
421
421
public bool SupportedDiagnosticId ( ProjectId projectId , string id )
422
422
{
423
- if ( _diagnosticIdMap . TryGetValue ( projectId , out var ids ) )
423
+ lock ( _diagnosticIdMap )
424
424
{
425
- return ids . Contains ( id ) ;
426
- }
425
+ if ( _diagnosticIdMap . TryGetValue ( projectId , out var ids ) )
426
+ {
427
+ return ids . Contains ( id ) ;
428
+ }
427
429
428
- // set ids set
429
- var map = new HashSet < string > ( ) ;
430
- _diagnosticIdMap . Add ( projectId , map ) ;
430
+ // set ids set
431
+ var map = new HashSet < string > ( ) ;
432
+ _diagnosticIdMap . Add ( projectId , map ) ;
431
433
432
- var project = _solution . GetProject ( projectId ) ;
433
- if ( project == null )
434
- {
435
- // projectId no longer exist, return false;
436
- return false ;
437
- }
434
+ var project = _solution . GetProject ( projectId ) ;
435
+ if ( project == null )
436
+ {
437
+ // projectId no longer exist, return false;
438
+ return false ;
439
+ }
438
440
439
- var descriptorMap = _owner . _diagnosticService . GetDiagnosticDescriptors ( project ) ;
440
- map . UnionWith ( descriptorMap . Values . SelectMany ( v => v . Select ( d => d . Id ) ) ) ;
441
+ var descriptorMap = _owner . _diagnosticService . GetDiagnosticDescriptors ( project ) ;
442
+ map . UnionWith ( descriptorMap . Values . SelectMany ( v => v . Select ( d => d . Id ) ) ) ;
441
443
442
- return map . Contains ( id ) ;
444
+ return map . Contains ( id ) ;
445
+ }
443
446
}
444
447
445
448
public ImmutableArray < DiagnosticData > GetBuildDiagnostics ( )
0 commit comments