summaryrefslogtreecommitdiff
path: root/indra/llcommon/lldeadmantimer.cpp
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2024-06-20 12:28:09 -0400
committerNat Goodspeed <nat@lindenlab.com>2024-06-20 12:28:09 -0400
commitd110358472b83f2f31d60ea0d76f1b426a087f56 (patch)
tree83617196e7d444c1063075e4a4c50fe19490a4ce /indra/llcommon/lldeadmantimer.cpp
parentbb1f3f08cf93facbf926e57384674441be7e2884 (diff)
parente92689063bdbe34907348a12f1db39bc81132783 (diff)
Merge branch 'release/luau-scripting' into lua-speedometer-demo
Diffstat (limited to 'indra/llcommon/lldeadmantimer.cpp')
-rw-r--r--indra/llcommon/lldeadmantimer.cpp226
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;
}