提交 cfd3ed26 编写于 作者: V VSadov

Merge pull request #5628 from VSadov/fix5516

Fixing race condition between setting and reading _lazyEmitExtensionAttribute
......@@ -1162,9 +1162,13 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
emitExtensionAttribute = ThreeState.True
End If
End If
End If
Debug.Assert(_lazyEmitExtensionAttribute = ThreeState.Unknown OrElse
_lazyEmitExtensionAttribute = emitExtensionAttribute)
_lazyEmitExtensionAttribute = emitExtensionAttribute
'strong name key settings are not validated when building netmodules.
'They are validated when the netmodule is added to an assembly.
If StrongNameKeys.DiagnosticOpt IsNot Nothing AndAlso Not DeclaringCompilation.Options.OutputKind.IsNetModule() Then
......@@ -1196,13 +1200,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols
End If
ReportDiagnosticsForSynthesizedAttributes(DeclaringCompilation, diagnostics)
ReportDiagnosticsForAddedModules(diagnostics)
Dim vbDiagnostics = diagnostics.ToReadOnlyAndFree(Of Diagnostic)()
If ImmutableInterlocked.InterlockedInitialize(_lazyAssemblyLevelDeclarationErrors, vbDiagnostics) Then
_lazyEmitExtensionAttribute = emitExtensionAttribute
End If
ImmutableInterlocked.InterlockedInitialize(_lazyAssemblyLevelDeclarationErrors, diagnostics.ToReadOnlyAndFree(Of Diagnostic)())
End If
Return _lazyAssemblyLevelDeclarationErrors
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册