mirror of
https://github.com/opensim/opensim.git
synced 2026-08-10 03:06:05 +08:00
* Clean up the agent's asset transactions when it is removed from the scene
* This may or may not help with the memory leak, need to assess
This commit is contained in:
@@ -78,9 +78,24 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
= new AgentAssetTransactions(userID, this, m_dumpAssetsToFile);
|
||||
AgentTransactions.Add(userID, transactions);
|
||||
}
|
||||
}
|
||||
|
||||
return AgentTransactions[userID];
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove the given agent asset transactions. This should be called when a client is departing
|
||||
/// from a scene (and hence won't be making any more transactions here).
|
||||
/// </summary>
|
||||
/// <param name="userID"></param>
|
||||
public void RemoveAgentAssetTransactions(LLUUID userID)
|
||||
{
|
||||
m_log.DebugFormat("Removing agent asset transactions structure for agent {0}", userID);
|
||||
|
||||
return AgentTransactions[userID];
|
||||
lock (AgentTransactions)
|
||||
{
|
||||
AgentTransactions.Remove(userID);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -1466,6 +1466,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
|
||||
ForEachScenePresence(
|
||||
delegate(ScenePresence presence) { presence.CoarseLocationChange(); });
|
||||
|
||||
CommsManager.TransactionsManager.RemoveAgentAssetTransactions(agentID);
|
||||
|
||||
lock (m_scenePresences)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user