diff options
author | Lluis Sanchez <lluis@xamarin.com> | 2019-05-31 19:27:30 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-31 19:27:30 +0300 |
commit | ad5769c010db2420845bb9dd135c55f07f78a744 (patch) | |
tree | b7232178d0aa1d371dae31bb1d52e0704aab9ef0 | |
parent | 41679a9c834ab5d0078db4738d267d0284dbc012 (diff) | |
parent | bcd813c6070c406d733f70f1331ca8471190a85f (diff) |
Merge pull request #7759 from mono/vsts901407
Handle exceptions in memory monitor and cleanup EventHandler SafeInvoke
3 files changed, 8 insertions, 14 deletions
diff --git a/main/src/core/MonoDevelop.Core/CoreExtensions.cs b/main/src/core/MonoDevelop.Core/CoreExtensions.cs index 2cc04e9238..3d90766d6b 100644 --- a/main/src/core/MonoDevelop.Core/CoreExtensions.cs +++ b/main/src/core/MonoDevelop.Core/CoreExtensions.cs @@ -266,17 +266,14 @@ namespace System /// Invokes a callback catching and reporting exceptions thrown by handlers /// </summary> /// <typeparam name="T">Type of the event arguments</typeparam> - /// <param name="event">Event to invoke</param> + /// <param name="events">Event to invoke</param> /// <param name="sender">Sender of the event</param> /// <param name="args">Arguments of the event</param> - public static void SafeInvoke<T> (this EventHandler<T> @event, object sender, T args) + public static void SafeInvoke<T> (this EventHandler<T> events, object sender, T args) { - var events = @event; - if (events == null) - return; foreach (var ev in events.GetInvocationList ()) { try { - ((EventHandler < T > )ev) (sender, args); + ((EventHandler<T>)ev) (sender, args); } catch (Exception ex) { LoggingService.LogInternalError (ex); } @@ -286,14 +283,11 @@ namespace System /// <summary> /// Invokes a callback catching and reporting exceptions thrown by handlers /// </summary> - /// <param name="event">Event to invoke</param> + /// <param name="events">Event to invoke</param> /// <param name="sender">Sender of the event</param> /// <param name="args">Arguments of the event</param> - public static void SafeInvoke (this EventHandler @event, object sender, EventArgs args) + public static void SafeInvoke (this EventHandler events, object sender, EventArgs args) { - var events = @event; - if (events == null) - return; foreach (var ev in events.GetInvocationList ()) { try { ((EventHandler)ev) (sender, args); diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/MemoryMonitor.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/MemoryMonitor.cs index 4990132dfc..d8dc939e98 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/MemoryMonitor.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/MemoryMonitor.cs @@ -33,7 +33,7 @@ namespace MonoDevelop.Ide.Desktop /// </summary> protected virtual void OnStatusChanged (PlatformMemoryStatusEventArgs args) { - StatusChanged?.Invoke (this, args); + StatusChanged?.SafeInvoke (this, args); } /// <summary> diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs index d4af636a05..66298a19a3 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs @@ -97,12 +97,12 @@ namespace MonoDevelop.Ide return Task.CompletedTask; } - void OnMemoryStatusChanged (object sender, PlatformMemoryStatusEventArgs args) + static void OnMemoryStatusChanged (object sender, PlatformMemoryStatusEventArgs args) { Counters.MemoryPressure.Inc (args.CounterMetadata); } - void OnThermalStatusChanged (object sender, PlatformThermalStatusEventArgs args) + static void OnThermalStatusChanged (object sender, PlatformThermalStatusEventArgs args) { Counters.ThermalNotification.Inc (args.CounterMetadata); } |