summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerregion.cpp
diff options
context:
space:
mode:
authorMonty Brandenberg <monty@lindenlab.com>2010-11-24 16:46:40 -0500
committerMonty Brandenberg <monty@lindenlab.com>2010-11-24 16:46:40 -0500
commit0fd80d09972657e6417193abf577084a3b3b85f1 (patch)
treea59781ed3dbcdfebbae13d008fc68d51c924e01b /indra/newview/llviewerregion.cpp
parent6abc60be577bd29c2428d85143c8f583eab54723 (diff)
ESC-154 ESC-156 Metrics integration across threads
Using unpause() method in derived class rather than wake() in furthest base class solved the stalling problem. I still think too many levels of the LLTextureFetch hierarchy are keeping thread state, however. The LLViewerRegion instance an agent enters doesn't necessarily have its region_id yet, that only comes after the handshake, if any. So add a few more metrics insertion points to propagate region into metrics. Finally, try to launch a final metrics report when a quit is initiated.
Diffstat (limited to 'indra/newview/llviewerregion.cpp')
-rw-r--r--indra/newview/llviewerregion.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 79b45a459f..717ef40465 100644
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1341,6 +1341,14 @@ void LLViewerRegion::unpackRegionHandshake()
msg->nextBlock("RegionInfo");
msg->addU32("Flags", 0x0 );
msg->sendReliable(host);
+
+ // Inform metrics when a region associated with an agent
+ // receives a regionID.
+ if (gAgent.getRegion() == this)
+ {
+ // Region is active in agent, tell metrics about the region ID
+ LLAppViewer::metricsUpdateRegion(region_id);
+ }
}
void LLViewerRegion::setSeedCapability(const std::string& url)