Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@xamarin.com>2019-05-31 19:27:30 +0300
committerGitHub <noreply@github.com>2019-05-31 19:27:30 +0300
commitad5769c010db2420845bb9dd135c55f07f78a744 (patch)
treeb7232178d0aa1d371dae31bb1d52e0704aab9ef0
parent41679a9c834ab5d0078db4738d267d0284dbc012 (diff)
parentbcd813c6070c406d733f70f1331ca8471190a85f (diff)
Merge pull request #7759 from mono/vsts901407
Handle exceptions in memory monitor and cleanup EventHandler SafeInvoke
-rw-r--r--main/src/core/MonoDevelop.Core/CoreExtensions.cs16
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/MemoryMonitor.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs4
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);
}