aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-12-13 20:42:39 +0000
committerJustin Clark-Casey (justincc)2011-12-13 20:42:39 +0000
commitb242ceda1e7599a8e71150f3fcc9f27a64d18828 (patch)
tree5f83477d214d48e32a2836b113591fe4cdb8848d
parentGet rid of the 'lolcat' library asset. (diff)
downloadopensim-SC_OLD-b242ceda1e7599a8e71150f3fcc9f27a64d18828.zip
opensim-SC_OLD-b242ceda1e7599a8e71150f3fcc9f27a64d18828.tar.gz
opensim-SC_OLD-b242ceda1e7599a8e71150f3fcc9f27a64d18828.tar.bz2
opensim-SC_OLD-b242ceda1e7599a8e71150f3fcc9f27a64d18828.tar.xz
In AvatarFactoryModule.SetApperance(), perform ValidateBakedTextureCache() in the same thread rather than on another one.
The caller is already an async thread from LLClientView so this doesn't hold up the client. However, launching on a separate thread does remove the effect of m_setAppearanceLock This was potentially allowing two different SetAppearance threads to interfere with each other, though this probably rarely happens, if at all.
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs6
-rw-r--r--OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs4
2 files changed, 6 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 7223438..9c86c74 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -575,8 +575,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
575 /// <summary> 575 /// <summary>
576 /// Add a handler for the given packet type. 576 /// Add a handler for the given packet type.
577 /// </summary> 577 /// </summary>
578 /// <remarks>The packet is handled on its own thread. If packets must be handled in the order in which thye 578 /// <remarks>
579 /// are received then please us ethe synchronous version of this method.</remarks> 579 /// The packet is handled on its own thread. If packets must be handled in the order in which thye
580 /// are received then please use the synchronous version of this method.
581 /// </remarks>
580 /// <param name="packetType"></param> 582 /// <param name="packetType"></param>
581 /// <param name="handler"></param> 583 /// <param name="handler"></param>
582 /// <returns>true if the handler was added. This is currently always the case.</returns> 584 /// <returns>true if the handler was added. This is currently always the case.</returns>
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index f06fb14..29e3580 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -150,13 +150,13 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
150 changed = sp.Appearance.SetTextureEntries(textureEntry) || changed; 150 changed = sp.Appearance.SetTextureEntries(textureEntry) || changed;
151 151
152 m_log.InfoFormat("[AVFACTORY]: received texture update for {0}", sp.UUID); 152 m_log.InfoFormat("[AVFACTORY]: received texture update for {0}", sp.UUID);
153 Util.FireAndForget(delegate(object o) { ValidateBakedTextureCache(sp, false); }); 153 ValidateBakedTextureCache(sp, false);
154 154
155 // This appears to be set only in the final stage of the appearance 155 // This appears to be set only in the final stage of the appearance
156 // update transaction. In theory, we should be able to do an immediate 156 // update transaction. In theory, we should be able to do an immediate
157 // appearance send and save here. 157 // appearance send and save here.
158
159 } 158 }
159
160 // save only if there were changes, send no matter what (doesn't hurt to send twice) 160 // save only if there were changes, send no matter what (doesn't hurt to send twice)
161 if (changed) 161 if (changed)
162 QueueAppearanceSave(sp.ControllingClient.AgentId); 162 QueueAppearanceSave(sp.ControllingClient.AgentId);