From a7afb50324c4c269408cc331a8b2160c7090c3e0 Mon Sep 17 00:00:00 2001 From: Elijah Burshtein Date: Wed, 25 Sep 2024 09:58:40 +0300 Subject: [PATCH] Use a static lock to access the static Instances dictionary --- .../DotNetRuntimeStatsCollector.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/prometheus-net.DotNetRuntime/DotNetRuntimeStatsCollector.cs b/src/prometheus-net.DotNetRuntime/DotNetRuntimeStatsCollector.cs index 211b7ac..0ae63ec 100644 --- a/src/prometheus-net.DotNetRuntime/DotNetRuntimeStatsCollector.cs +++ b/src/prometheus-net.DotNetRuntime/DotNetRuntimeStatsCollector.cs @@ -20,7 +20,7 @@ internal sealed class DotNetRuntimeStatsCollector : private readonly CollectorRegistry _metricRegistry; private readonly Options _options; - private readonly object _lockInstance = new (); + private static readonly object LockInstance = new (); private readonly CancellationTokenSource _ctSource = new(); private readonly Task _recycleTask; private bool _disposed = false; @@ -34,7 +34,7 @@ internal DotNetRuntimeStatsCollector(ServiceProvider serviceProvider, CollectorR var metrics = Prometheus.Metrics.WithCustomRegistry(_metricRegistry); _listenerGlobalOpts = DotNetEventListener.GlobalOptions.CreateFrom(_options, metrics); - lock (_lockInstance) + lock (LockInstance) { if (Instances.ContainsKey(_metricRegistry)) { @@ -143,7 +143,7 @@ public void Dispose() } finally { - lock (_lockInstance) + lock (LockInstance) { Instances.Remove(_metricRegistry); }