* 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 assessThreadPoolClientBranch
parent
365cf8e455
commit
1677bde480
|
@ -78,9 +78,24 @@ namespace OpenSim.Framework.Communications.Cache
|
||||||
= new AgentAssetTransactions(userID, this, m_dumpAssetsToFile);
|
= new AgentAssetTransactions(userID, this, m_dumpAssetsToFile);
|
||||||
AgentTransactions.Add(userID, transactions);
|
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>
|
/// <summary>
|
||||||
|
|
|
@ -1466,6 +1466,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
ForEachScenePresence(
|
ForEachScenePresence(
|
||||||
delegate(ScenePresence presence) { presence.CoarseLocationChange(); });
|
delegate(ScenePresence presence) { presence.CoarseLocationChange(); });
|
||||||
|
|
||||||
|
CommsManager.TransactionsManager.RemoveAgentAssetTransactions(agentID);
|
||||||
|
|
||||||
lock (m_scenePresences)
|
lock (m_scenePresences)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue