diff --git a/source/CPDLCPlugin/Plugin.cs b/source/CPDLCPlugin/Plugin.cs index badd35e..04d7ef5 100644 --- a/source/CPDLCPlugin/Plugin.cs +++ b/source/CPDLCPlugin/Plugin.cs @@ -175,25 +175,28 @@ void NetworkDisconnected(object sender, EventArgs e) public static void AddError(Exception exception) { - TryAddErrorInternal(exception); Log.Error(exception, "An error has occurred"); + TryAddErrorInternal(exception); } public static void AddError(Exception exception, string message) { - TryAddErrorInternal(exception); Log.Error(exception, message); + TryAddErrorInternal(exception); } static void TryAddErrorInternal(Exception exception) { - // Don't flood the error window with the same message over and over again - if (ErrorMessages.TryGetValue(exception.Message, out var lastShown) && - DateTimeOffset.Now - lastShown <= TimeSpan.FromMinutes(1)) - return; + lock (ErrorMessages) + { + // Don't flood the error window with the same message over and over again + if (ErrorMessages.TryGetValue(exception.Message, out var lastShown) && + DateTimeOffset.Now - lastShown <= TimeSpan.FromMinutes(1)) + return; - Errors.Add(exception, Name); - ErrorMessages.Add(exception.Message, DateTimeOffset.Now); + Errors.Add(exception, Name); + ErrorMessages.Add(exception.Message, DateTimeOffset.Now); + } } void ConfigureTheme()