diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2024-06-20 12:28:09 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2024-06-20 12:28:09 -0400 |
commit | d110358472b83f2f31d60ea0d76f1b426a087f56 (patch) | |
tree | 83617196e7d444c1063075e4a4c50fe19490a4ce /indra/llcommon/lldeadmantimer.cpp | |
parent | bb1f3f08cf93facbf926e57384674441be7e2884 (diff) | |
parent | e92689063bdbe34907348a12f1db39bc81132783 (diff) |
Merge branch 'release/luau-scripting' into lua-speedometer-demo
Diffstat (limited to 'indra/llcommon/lldeadmantimer.cpp')
-rw-r--r-- | indra/llcommon/lldeadmantimer.cpp | 226 |
1 files changed, 113 insertions, 113 deletions
diff --git a/indra/llcommon/lldeadmantimer.cpp b/indra/llcommon/lldeadmantimer.cpp index 830443b956..f9c14d7c24 100644 --- a/indra/llcommon/lldeadmantimer.cpp +++ b/indra/llcommon/lldeadmantimer.cpp @@ -1,4 +1,4 @@ -/** +/** * @file lldeadmantimer.cpp * @brief Simple deadman-switch timer. * @author monty@lindenlab.com @@ -43,146 +43,146 @@ // true true Not allowed // LLDeadmanTimer::LLDeadmanTimer(F64 horizon, bool inc_cpu) - : mHorizon(time_type(llmax(horizon, F64(0.0)) * get_timer_info().mClockFrequency)), - mActive(false), // If true, a timer is running. - mDone(false), // If true, timer has completed and can be read (once) - mStarted(U64L(0)), - mExpires(U64L(0)), - mStopped(U64L(0)), - mCount(U64L(0)), - mIncCPU(inc_cpu), - mUStartCPU(LLProcInfo::time_type(U64L(0))), - mUEndCPU(LLProcInfo::time_type(U64L(0))), - mSStartCPU(LLProcInfo::time_type(U64L(0))), - mSEndCPU(LLProcInfo::time_type(U64L(0))) + : mHorizon(time_type(llmax(horizon, F64(0.0)) * get_timer_info().mClockFrequency)), + mActive(false), // If true, a timer is running. + mDone(false), // If true, timer has completed and can be read (once) + mStarted(U64L(0)), + mExpires(U64L(0)), + mStopped(U64L(0)), + mCount(U64L(0)), + mIncCPU(inc_cpu), + mUStartCPU(LLProcInfo::time_type(U64L(0))), + mUEndCPU(LLProcInfo::time_type(U64L(0))), + mSStartCPU(LLProcInfo::time_type(U64L(0))), + mSEndCPU(LLProcInfo::time_type(U64L(0))) {} // static LLDeadmanTimer::time_type LLDeadmanTimer::getNow() { - return LLTimer::getCurrentClockCount(); + return LLTimer::getCurrentClockCount(); } void LLDeadmanTimer::start(time_type now) { - // *TODO: If active, let's complete an existing timer and save - // the result to the side. I think this will be useful later. - // For now, wipe out anything in progress, start fresh. - - if (! now) - { - now = LLTimer::getCurrentClockCount(); - } - mActive = true; - mDone = false; - mStarted = now; - mExpires = now + mHorizon; - mStopped = now; - mCount = U64L(0); - if (mIncCPU) - { - LLProcInfo::getCPUUsage(mUStartCPU, mSStartCPU); - } + // *TODO: If active, let's complete an existing timer and save + // the result to the side. I think this will be useful later. + // For now, wipe out anything in progress, start fresh. + + if (! now) + { + now = LLTimer::getCurrentClockCount(); + } + mActive = true; + mDone = false; + mStarted = now; + mExpires = now + mHorizon; + mStopped = now; + mCount = U64L(0); + if (mIncCPU) + { + LLProcInfo::getCPUUsage(mUStartCPU, mSStartCPU); + } } void LLDeadmanTimer::stop(time_type now) { - if (! mActive) - { - return; - } - - if (! now) - { - now = getNow(); - } - mStopped = now; - mActive = false; - mDone = true; - if (mIncCPU) - { - LLProcInfo::getCPUUsage(mUEndCPU, mSEndCPU); - } + if (! mActive) + { + return; + } + + if (! now) + { + now = getNow(); + } + mStopped = now; + mActive = false; + mDone = true; + if (mIncCPU) + { + LLProcInfo::getCPUUsage(mUEndCPU, mSEndCPU); + } } bool LLDeadmanTimer::isExpired(time_type now, F64 & started, F64 & stopped, U64 & count, - U64 & user_cpu, U64 & sys_cpu) + U64 & user_cpu, U64 & sys_cpu) { - const bool status(isExpired(now, started, stopped, count)); - if (status) - { - user_cpu = U64(mUEndCPU - mUStartCPU); - sys_cpu = U64(mSEndCPU - mSStartCPU); - } - return status; + const bool status(isExpired(now, started, stopped, count)); + if (status) + { + user_cpu = U64(mUEndCPU - mUStartCPU); + sys_cpu = U64(mSEndCPU - mSStartCPU); + } + return status; } - + bool LLDeadmanTimer::isExpired(time_type now, F64 & started, F64 & stopped, U64 & count) { - if (mActive && ! mDone) - { - if (! now) - { - now = getNow(); - } - - if (now >= mExpires) - { - // mStopped from ringBell() is the value we want - mActive = false; - mDone = true; - } - } - - if (! mDone) - { - return false; - } - - started = mStarted * get_timer_info().mClockFrequencyInv; - stopped = mStopped * get_timer_info().mClockFrequencyInv; - count = mCount; - mDone = false; - - return true; + if (mActive && ! mDone) + { + if (! now) + { + now = getNow(); + } + + if (now >= mExpires) + { + // mStopped from ringBell() is the value we want + mActive = false; + mDone = true; + } + } + + if (! mDone) + { + return false; + } + + started = mStarted * get_timer_info().mClockFrequencyInv; + stopped = mStopped * get_timer_info().mClockFrequencyInv; + count = mCount; + mDone = false; + + return true; } - + void LLDeadmanTimer::ringBell(time_type now, unsigned int count) { - if (! mActive) - { - return; - } - - if (! now) - { - now = getNow(); - } - - if (now >= mExpires) - { - // Timer has expired, this event will be dropped - mActive = false; - mDone = true; - } - else - { - // Timer renewed, keep going - mStopped = now; - mExpires = now + mHorizon; - mCount += count; - if (mIncCPU) - { - LLProcInfo::getCPUUsage(mUEndCPU, mSEndCPU); - } - } - - return; + if (! mActive) + { + return; + } + + if (! now) + { + now = getNow(); + } + + if (now >= mExpires) + { + // Timer has expired, this event will be dropped + mActive = false; + mDone = true; + } + else + { + // Timer renewed, keep going + mStopped = now; + mExpires = now + mHorizon; + mCount += count; + if (mIncCPU) + { + LLProcInfo::getCPUUsage(mUEndCPU, mSEndCPU); + } + } + + return; } |