Skip to content

Commit de078d1

Browse files
authored
Avoid delegate allocation in TraceSourceLoggerProvider.GetOrAddTraceSource (dotnet#71134)
Every call to GetOrAddTraceSource was allocating a new delegate instance.
1 parent c1d4494 commit de078d1

1 file changed

Lines changed: 3 additions & 4 deletions

File tree

src/libraries/Microsoft.Extensions.Logging.TraceSource/src/TraceSourceLoggerProvider.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,9 @@ public ILogger CreateLogger(string name)
5353
return new TraceSourceLogger(GetOrAddTraceSource(name));
5454
}
5555

56-
private DiagnosticsTraceSource GetOrAddTraceSource(string name)
57-
{
58-
return _sources.GetOrAdd(name, InitializeTraceSource);
59-
}
56+
private DiagnosticsTraceSource GetOrAddTraceSource(string name) =>
57+
_sources.TryGetValue(name, out DiagnosticsTraceSource? source) ? source :
58+
_sources.GetOrAdd(name, InitializeTraceSource(name));
6059

6160
private DiagnosticsTraceSource InitializeTraceSource(string traceSourceName)
6261
{

0 commit comments

Comments
 (0)