From 2bfc6b497045c9d66a7d07d15816885ab7414669 Mon Sep 17 00:00:00 2001 From: Nazmi Altun Date: Tue, 24 Dec 2019 10:49:31 +0800 Subject: [PATCH] Event that has been subscribed to EventSourceCreated should be unsubscribed to avoid memory leak. --- .../DotNetEventListener.cs | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/src/prometheus-net.DotNetRuntime/DotNetEventListener.cs b/src/prometheus-net.DotNetRuntime/DotNetEventListener.cs index b4bbaaf..c9fe4dd 100644 --- a/src/prometheus-net.DotNetRuntime/DotNetEventListener.cs +++ b/src/prometheus-net.DotNetRuntime/DotNetEventListener.cs @@ -1,11 +1,7 @@ +using Prometheus.DotNetRuntime.StatsCollectors.Util; using System; -using System.Collections.Generic; -using System.Collections.Immutable; using System.Diagnostics; using System.Diagnostics.Tracing; -using System.Linq; -using Prometheus.DotNetRuntime.StatsCollectors; -using Prometheus.DotNetRuntime.StatsCollectors.Util; namespace Prometheus.DotNetRuntime { @@ -24,32 +20,28 @@ internal DotNetEventListener(IEventSourceStatsCollector collector, Action + var es = e.EventSource; + if (es.Guid == _collector.EventSourceGuid) { - var es = e.EventSource; - if (es.Guid == forCollector.EventSourceGuid) - { - EnableEvents(es, forCollector.Level, forCollector.Keywords); - StartedReceivingEvents = true; - } - }; + EnableEvents(es, _collector.Level, _collector.Keywords); + StartedReceivingEvents = true; + } } - + protected override void OnEventWritten(EventWrittenEventArgs eventData) { var sp = new Stopwatch(); @@ -60,7 +52,7 @@ protected override void OnEventWritten(EventWrittenEventArgs eventData) _eventTypeCounts.Labels(_nameSnakeCase, eventData.EventSource.Name, eventData.EventName).Inc(); sp.Restart(); } - + _collector.ProcessEvent(eventData); if (_enableDebugging) @@ -74,5 +66,11 @@ protected override void OnEventWritten(EventWrittenEventArgs eventData) _errorHandler(e); } } + + public override void Dispose() + { + EventSourceCreated -= OnEventSourceCreated; + base.Dispose(); + } } } \ No newline at end of file