From ee758c1da0cf0c2436034109868003da56060e6c Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" <vir@lindenlab.com> Date: Mon, 12 Mar 2012 18:55:30 -0400 Subject: [PATCH] SH-2970 WIP - scoped phase tweaking, removed auto-phase-stop on metrics send --- indra/newview/llagent.cpp | 4 ++++ indra/newview/llappearancemgr.cpp | 2 +- indra/newview/llvoavatar.h | 18 ++++++++++++++++++ indra/newview/llvoavatarself.cpp | 2 +- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 9f764c6e41e..6e350a5b1dc 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3257,6 +3257,10 @@ void LLAgent::processControlRelease(LLMessageSystem *msg, void **) void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void **user_data) { gAgentQueryManager.mNumPendingQueries--; + if (gAgentQueryManager.mNumPendingQueries == 0) + { + selfStopPhase("fetch_texture_cache_entries"); + } if (!isAgentAvatarValid() || gAgentAvatarp->isDead()) { diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 13f76c0593b..fe0b3ff6761 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -1708,7 +1708,7 @@ void LLAppearanceMgr::updateAppearanceFromCOF(bool update_base_outfit_ordering) return; } - selfStartPhase("update_appearance_from_cof"); + LLVOAvatar::ScopedPhaseSetter(gAgentAvatarp,"update_appearance_from_cof"); BoolSetter setIsInUpdateAppearanceFromCOF(mIsInUpdateAppearanceFromCOF); diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index df9d8143b16..76261c0dc8f 100755 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -290,6 +290,24 @@ class LLVOAvatar : void stopAllPhases(); void clearPhases(); LLSD dumpPhases(); + + class ScopedPhaseSetter + { + public: + ScopedPhaseSetter(LLVOAvatar* avatar, std::string phase_name): + mAvatar(avatar),mPhaseName(phase_name) + { + if (mAvatar) { mAvatar->startPhase(mPhaseName); } + } + ~ScopedPhaseSetter() + { + if (mAvatar) { mAvatar->stopPhase(mPhaseName); } + } + private: + std::string mPhaseName; + LLVOAvatar* mAvatar; + }; + protected: BOOL updateIsFullyLoaded(); BOOL processFullyLoadedChange(bool loading); diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 4e75582a935..33f33b202f7 100755 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -2136,7 +2136,7 @@ class ViewerAppearanceChangeMetricsResponder: public LLCurl::Responder void LLVOAvatarSelf::sendAppearanceChangeMetrics() { - gAgentAvatarp->stopAllPhases(); + // gAgentAvatarp->stopAllPhases(); LLSD msg = metricsData(); msg["message"] = "ViewerAppearanceChangeMetrics"; -- GitLab