Skip to content

Commit 53678d6

Browse files
committed
lock around the entire dictionary read to prevent read/write out of sync
1 parent 8720d27 commit 53678d6

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/Microsoft.Extensions.Logging.MSBuild/MSBuildLoggerProvider.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ public MSBuildLoggerProvider(TaskLoggingHelper loggingHelperToWrap)
2222

2323
public ILogger CreateLogger(string categoryName)
2424
{
25-
if (!_loggers.TryGetValue(categoryName, out var logger))
25+
lock (_loggers)
2626
{
27-
logger = new MSBuildLogger(categoryName, _loggingHelper, _scopeProvider);
28-
lock (_loggers)
27+
if (!_loggers.TryGetValue(categoryName, out var logger))
2928
{
29+
logger = new MSBuildLogger(categoryName, _loggingHelper, _scopeProvider);
3030
_loggers[categoryName] = logger;
3131
}
32+
return logger;
3233
}
33-
return logger;
3434
}
3535

3636
public void Dispose() { }

0 commit comments

Comments
 (0)