private bool EnsureAppDomainTimerFiresBy(uint requestedDuration) { uint num = Math.Min(requestedDuration, 268435455U); if (this.m_isAppDomainTimerScheduled) { uint num2 = (uint)(TimerQueue.TickCount - this.m_currentAppDomainTimerStartTicks); if (num2 >= this.m_currentAppDomainTimerDuration) { return(true); } uint num3 = this.m_currentAppDomainTimerDuration - num2; if (num >= num3) { return(true); } } if (this.m_pauseTicks != 0) { return(true); } if (this.m_appDomainTimer == null || this.m_appDomainTimer.IsInvalid) { this.m_appDomainTimer = TimerQueue.CreateAppDomainTimer(num, 0); if (!this.m_appDomainTimer.IsInvalid) { this.m_isAppDomainTimerScheduled = true; this.m_currentAppDomainTimerStartTicks = TimerQueue.TickCount; this.m_currentAppDomainTimerDuration = num; return(true); } return(false); } else { if (TimerQueue.ChangeAppDomainTimer(this.m_appDomainTimer, num)) { this.m_isAppDomainTimerScheduled = true; this.m_currentAppDomainTimerStartTicks = TimerQueue.TickCount; this.m_currentAppDomainTimerDuration = num; return(true); } return(false); } }
private bool EnsureAppDomainTimerFiresBy(uint requestedDuration) { uint dueTime = Math.Min(requestedDuration, 268435455U); if (this.m_isAppDomainTimerScheduled) { uint num1 = (uint)(TimerQueue.TickCount - this.m_currentAppDomainTimerStartTicks); if (num1 >= this.m_currentAppDomainTimerDuration) { return(true); } uint num2 = this.m_currentAppDomainTimerDuration - num1; if (dueTime >= num2) { return(true); } } if (this.m_pauseTicks != 0) { return(true); } if (this.m_appDomainTimer == null || this.m_appDomainTimer.IsInvalid) { this.m_appDomainTimer = TimerQueue.CreateAppDomainTimer(dueTime); if (this.m_appDomainTimer.IsInvalid) { return(false); } this.m_isAppDomainTimerScheduled = true; this.m_currentAppDomainTimerStartTicks = TimerQueue.TickCount; this.m_currentAppDomainTimerDuration = dueTime; return(true); } if (!TimerQueue.ChangeAppDomainTimer(this.m_appDomainTimer, dueTime)) { return(false); } this.m_isAppDomainTimerScheduled = true; this.m_currentAppDomainTimerStartTicks = TimerQueue.TickCount; this.m_currentAppDomainTimerDuration = dueTime; return(true); }