From d090ab0085983aff83f4e8da92dbd9ef11e6783d Mon Sep 17 00:00:00 2001 From: Austin Noska Date: Wed, 20 Jan 2021 17:46:26 -0500 Subject: [PATCH] fix: The SafeTimer constructor that executes the callback immediately now works as expected --- CHANGELOG.md | 3 +++ .../Services/Scheduler/ActionSchedulerService.cs | 11 +---------- ICD.Common.Utils/Timers/SafeTimer.cs | 4 ++-- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87d981b..852bee7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +### Changed + - A SafeTimer constructor that executes the callback immediately now does this instead of waiting infinitely + ## [14.0.0] - 2021-01-14 ### Added - Added Get and Set extensions to PropertyInfo in SIMPLSHARP to mimic overloads avaliable in NETSTANDARD diff --git a/ICD.Common.Utils/Services/Scheduler/ActionSchedulerService.cs b/ICD.Common.Utils/Services/Scheduler/ActionSchedulerService.cs index 868eee1..dd65352 100644 --- a/ICD.Common.Utils/Services/Scheduler/ActionSchedulerService.cs +++ b/ICD.Common.Utils/Services/Scheduler/ActionSchedulerService.cs @@ -18,9 +18,9 @@ namespace ICD.Common.Utils.Services.Scheduler public ActionSchedulerService() { m_Actions = new List(); - m_Timer = new SafeTimer(TimerCallback, -1); m_CriticalSection = new SafeCriticalSection(); m_LastRunTime = DateTime.MinValue; + m_Timer = SafeTimer.Stopped(TimerCallback); } public void Dispose() @@ -153,15 +153,6 @@ namespace ICD.Common.Utils.Services.Scheduler } } - private void Log(eSeverity severity, string message, params object[] args) - { - ILoggerService logger = ServiceProvider.TryGetService(); - if (logger == null) - return; - - logger.AddEntry(severity, string.Format("{0} - {1}", this, message), args); - } - private void Log(eSeverity severity, Exception ex, string message, params object[] args) { ILoggerService logger = ServiceProvider.TryGetService(); diff --git a/ICD.Common.Utils/Timers/SafeTimer.cs b/ICD.Common.Utils/Timers/SafeTimer.cs index 254b42d..3bc3db2 100644 --- a/ICD.Common.Utils/Timers/SafeTimer.cs +++ b/ICD.Common.Utils/Timers/SafeTimer.cs @@ -36,7 +36,7 @@ namespace ICD.Common.Utils.Timers /// /// public SafeTimer(Action callback, long repeatPeriod) - : this(callback, -1, repeatPeriod) + : this(callback, 0, repeatPeriod) { } @@ -138,7 +138,7 @@ namespace ICD.Common.Utils.Timers if (repeatPeriod < 0 && repeatPeriod != Timeout.Infinite) throw new ArgumentOutOfRangeException("repeatPeriod", "Repeat period must be greater than or equal to 0ms"); - if (dueTime >= int.MaxValue) + if (repeatPeriod >= int.MaxValue) throw new ArgumentOutOfRangeException("repeatPeriod", string.Format("Repeat period must be less than {0:n0}ms", int.MaxValue)); #if SIMPLSHARP