提交 3ec54859 编写于 作者: V vsadov

Fixing race condition between setting and reading _lazyEmitExtensionAttribute

Fixes #5516
上级 44b2028f
......@@ -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.
先完成此消息的编辑!
想要评论请 注册