summaryrefslogtreecommitdiff
path: root/indra/llcommon/llfasttimer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon/llfasttimer.cpp')
-rw-r--r--indra/llcommon/llfasttimer.cpp36
1 files changed, 17 insertions, 19 deletions
diff --git a/indra/llcommon/llfasttimer.cpp b/indra/llcommon/llfasttimer.cpp
index 37332da31c..ea4e1a89a2 100644
--- a/indra/llcommon/llfasttimer.cpp
+++ b/indra/llcommon/llfasttimer.cpp
@@ -183,7 +183,6 @@ void TimeBlock::processTimes()
{
get_clock_count(); // good place to calculate clock frequency
U64 cur_time = getCPUClockCount64();
- BlockTimerStackRecord* stack_record = ThreadTimerStack::getInstance();
// set up initial tree
for (LLInstanceTracker<TimeBlock>::instance_iter it = LLInstanceTracker<TimeBlock>::beginInstances(), end_it = LLInstanceTracker<TimeBlock>::endInstances();
@@ -199,11 +198,10 @@ void TimeBlock::processTimes()
{
TimeBlockAccumulator* accumulator = timer.getPrimaryAccumulator();
- if (accumulator->mLastAccumulator)
+ if (accumulator->mLastCaller)
{
- TimeBlock* parent = accumulator->mLastAccumulator->mBlock;
- timer.setParent(parent);
- accumulator->mParent = parent;
+ timer.setParent(accumulator->mLastCaller);
+ accumulator->mParent = accumulator->mLastCaller;
}
// no need to push up tree on first use, flag can be set spuriously
accumulator->mMoveUpTree = false;
@@ -250,26 +248,26 @@ void TimeBlock::processTimes()
}
// walk up stack of active timers and accumulate current time while leaving timing structures active
- BlockTimer* cur_timer = stack_record->mActiveTimer;
- TimeBlockAccumulator* accumulator = stack_record->mAccumulator;
+ BlockTimerStackRecord* stack_record = ThreadTimerStack::getInstance();
+ BlockTimer* cur_timer = stack_record->mActiveTimer;
+ TimeBlockAccumulator* accumulator = stack_record->mTimeBlock->getPrimaryAccumulator();
+
// root defined by parent pointing to self
- while(cur_timer && cur_timer->mLastTimerData.mActiveTimer != cur_timer)
+ while(cur_timer && cur_timer->mParentTimerData.mActiveTimer != cur_timer)
{
U64 cumulative_time_delta = cur_time - cur_timer->mStartTime;
+
+ accumulator->mTotalTimeCounter += cumulative_time_delta;
accumulator->mChildTimeCounter += stack_record->mChildTime;
stack_record->mChildTime = 0;
- accumulator->mTotalTimeCounter += cumulative_time_delta;
cur_timer->mStartTime = cur_time;
- stack_record = &cur_timer->mLastTimerData;
- stack_record->mChildTime += cumulative_time_delta;
- if (stack_record->mAccumulator)
- {
- accumulator = stack_record->mAccumulator;
- }
+ stack_record = &cur_timer->mParentTimerData;
+ accumulator = stack_record->mTimeBlock->getPrimaryAccumulator();
+ cur_timer = stack_record->mActiveTimer;
- cur_timer = cur_timer->mLastTimerData.mActiveTimer;
+ stack_record->mChildTime += cumulative_time_delta;
}
@@ -282,7 +280,7 @@ void TimeBlock::processTimes()
TimeBlock& timer = *it;
TimeBlockAccumulator* accumulator = timer.getPrimaryAccumulator();
- accumulator->mLastAccumulator = NULL;
+ accumulator->mLastCaller = NULL;
accumulator->mMoveUpTree = false;
}
@@ -420,7 +418,7 @@ TimeBlockAccumulator::TimeBlockAccumulator()
: mChildTimeCounter(0),
mTotalTimeCounter(0),
mCalls(0),
- mLastAccumulator(NULL),
+ mLastCaller(NULL),
mActiveCount(0),
mMoveUpTree(false),
mParent(NULL)
@@ -431,7 +429,7 @@ void TimeBlockAccumulator::addSamples( const TimeBlockAccumulator& other )
mChildTimeCounter += other.mChildTimeCounter;
mTotalTimeCounter += other.mTotalTimeCounter;
mCalls += other.mCalls;
- mLastAccumulator = other.mLastAccumulator;
+ mLastCaller = other.mLastCaller;
mActiveCount = other.mActiveCount;
mMoveUpTree = other.mMoveUpTree;
mParent = other.mParent;