From 73af42e0f5f0330a04ad4818368a4837ed97263d Mon Sep 17 00:00:00 2001 From: Jeffery Thompson Date: Fri, 13 Jul 2018 12:23:06 -0400 Subject: [PATCH] fix: guarantee positive duration for Timer.Reset --- ICD.Common.Utils/Services/Scheduler/ActionSchedulerService.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ICD.Common.Utils/Services/Scheduler/ActionSchedulerService.cs b/ICD.Common.Utils/Services/Scheduler/ActionSchedulerService.cs index 4fd70e3..31c667a 100644 --- a/ICD.Common.Utils/Services/Scheduler/ActionSchedulerService.cs +++ b/ICD.Common.Utils/Services/Scheduler/ActionSchedulerService.cs @@ -130,7 +130,7 @@ namespace ICD.Common.Utils.Services.Scheduler m_CriticalSection.Enter(); try { - var action = m_Actions.FirstOrDefault(a => a.NextRunTime != null); + var action = m_Actions.FirstOrDefault(a => a.NextRunTime != null && a.NextRunTime > IcdEnvironment.GetLocalTime()); if (action == null || action.NextRunTime == null) { m_Timer.Stop(); @@ -138,6 +138,8 @@ namespace ICD.Common.Utils.Services.Scheduler } long msToNextAction = (long)(action.NextRunTime.Value - IcdEnvironment.GetLocalTime()).TotalMilliseconds; + if (msToNextAction < 0) + msToNextAction = 1000; m_Timer.Reset(msToNextAction); } finally