Still chasing logout memory leak. Putting in small changes and temporary light verbosity to this end
parent
b63c267f0b
commit
f05f583613
|
@ -26,6 +26,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using libsecondlife;
|
using libsecondlife;
|
||||||
using libsecondlife.Packets;
|
using libsecondlife.Packets;
|
||||||
|
@ -70,7 +71,9 @@ namespace OpenSim.Framework
|
||||||
|
|
||||||
public void Remove(uint id)
|
public void Remove(uint id)
|
||||||
{
|
{
|
||||||
|
//m_log.Info(String.Format("[CLIENT]: Removing client with code {0}, current count {1}", id, m_clients.Count));
|
||||||
m_clients.Remove(id);
|
m_clients.Remove(id);
|
||||||
|
m_log.Info(String.Format("[CLIENT]: Removed client with code {0}, new client count {1}", id, m_clients.Count));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Add(uint id, IClientAPI client)
|
public void Add(uint id, IClientAPI client)
|
||||||
|
|
|
@ -103,12 +103,22 @@ namespace OpenSim.Framework.Communications.Cache
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get an uploaded asset. If the data is successfully retrieved, the transaction will be removed.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="transactionID"></param>
|
||||||
|
/// <returns>The asset if the upload has completed, null if it has not.</returns>
|
||||||
public AssetBase GetTransactionAsset(LLUUID transactionID)
|
public AssetBase GetTransactionAsset(LLUUID transactionID)
|
||||||
{
|
{
|
||||||
if (XferUploaders.ContainsKey(transactionID))
|
if (XferUploaders.ContainsKey(transactionID))
|
||||||
{
|
{
|
||||||
return XferUploaders[transactionID].GetAssetData();
|
AssetXferUploader uploader = XferUploaders[transactionID];
|
||||||
|
AssetBase asset = uploader.GetAssetData();
|
||||||
|
XferUploaders.Remove(transactionID);
|
||||||
|
|
||||||
|
return asset;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,6 +247,7 @@ namespace OpenSim.Framework.Communications.Cache
|
||||||
SaveAssetToFile(filename, Asset.Data);
|
SaveAssetToFile(filename, Asset.Data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
///Left this in and commented in case there are unforseen issues
|
///Left this in and commented in case there are unforseen issues
|
||||||
//private void SaveAssetToFile(string filename, byte[] data)
|
//private void SaveAssetToFile(string filename, byte[] data)
|
||||||
//{
|
//{
|
||||||
|
@ -311,10 +322,6 @@ namespace OpenSim.Framework.Communications.Cache
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateInventoryItem(LLUUID itemID)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public AssetBase GetAssetData()
|
public AssetBase GetAssetData()
|
||||||
{
|
{
|
||||||
if (m_finished)
|
if (m_finished)
|
||||||
|
|
|
@ -53,7 +53,7 @@ namespace OpenSim.Region.ClientStack
|
||||||
{
|
{
|
||||||
~ClientView()
|
~ClientView()
|
||||||
{
|
{
|
||||||
m_log.Info("[CLIENTVIEW]: Dstructor called");
|
System.Console.WriteLine("[CLIENTVIEW]: Destructor called");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
@ -237,6 +237,10 @@ namespace OpenSim.Region.ClientStack
|
||||||
private void CloseCleanup()
|
private void CloseCleanup()
|
||||||
{
|
{
|
||||||
m_scene.RemoveClient(AgentId);
|
m_scene.RemoveClient(AgentId);
|
||||||
|
|
||||||
|
//m_log.Info(String.Format("[CLIENTVIEW] Memory pre GC {0}", System.GC.GetTotalMemory(false)));
|
||||||
|
//m_log.Info(String.Format("[CLIENTVIEW] Memory post GC {0}", System.GC.GetTotalMemory(true)));
|
||||||
|
|
||||||
// Send the STOP packet
|
// Send the STOP packet
|
||||||
DisableSimulatorPacket disable = (DisableSimulatorPacket)PacketPool.Instance.GetPacket(PacketType.DisableSimulator);
|
DisableSimulatorPacket disable = (DisableSimulatorPacket)PacketPool.Instance.GetPacket(PacketType.DisableSimulator);
|
||||||
OutPacket(disable, ThrottleOutPacketType.Task);
|
OutPacket(disable, ThrottleOutPacketType.Task);
|
||||||
|
@ -264,6 +268,11 @@ namespace OpenSim.Region.ClientStack
|
||||||
m_clientThread.Abort();
|
m_clientThread.Abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Close down the client view. This *must* be the last method called, since the last #
|
||||||
|
/// statement of CloseCleanup() aborts the thread.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ShutdownCircult"></param>
|
||||||
public void Close(bool ShutdownCircult)
|
public void Close(bool ShutdownCircult)
|
||||||
{
|
{
|
||||||
// Pull Client out of Region
|
// Pull Client out of Region
|
||||||
|
@ -273,7 +282,6 @@ namespace OpenSim.Region.ClientStack
|
||||||
if (ShutdownCircult)
|
if (ShutdownCircult)
|
||||||
OnConnectionClosed(this);
|
OnConnectionClosed(this);
|
||||||
|
|
||||||
|
|
||||||
CloseCleanup();
|
CloseCleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using libsecondlife;
|
using libsecondlife;
|
||||||
|
@ -133,13 +135,17 @@ namespace OpenSim.Region.ClientStack
|
||||||
//m_scene.ClientManager.CloseAllAgents(circuitcode);
|
//m_scene.ClientManager.CloseAllAgents(circuitcode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Completely close down the given client.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="client"></param>
|
||||||
public virtual void CloseClient(IClientAPI client)
|
public virtual void CloseClient(IClientAPI client)
|
||||||
{
|
{
|
||||||
//m_log.Info("PacketServer:CloseClient()");
|
m_log.Info("PacketServer:CloseClient()");
|
||||||
|
|
||||||
CloseCircuit(client.CircuitCode);
|
CloseCircuit(client.CircuitCode);
|
||||||
client.Close(false);
|
|
||||||
m_scene.ClientManager.Remove(client.CircuitCode);
|
m_scene.ClientManager.Remove(client.CircuitCode);
|
||||||
|
client.Close(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1446,6 +1446,9 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
// Remove client agent from profile, so new logins will work
|
// Remove client agent from profile, so new logins will work
|
||||||
CommsManager.UserService.clearUserAgent(agentID);
|
CommsManager.UserService.clearUserAgent(agentID);
|
||||||
|
|
||||||
|
//m_log.Info(String.Format("[SCENE] Memory pre GC {0}", System.GC.GetTotalMemory(false)));
|
||||||
|
//m_log.Info(String.Format("[SCENE] Memory post GC {0}", System.GC.GetTotalMemory(true)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void CloseAllAgents(uint circuitcode)
|
public override void CloseAllAgents(uint circuitcode)
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
~ScenePresence()
|
~ScenePresence()
|
||||||
{
|
{
|
||||||
m_log.Info("[ScenePresence] Destructor called");
|
System.Console.WriteLine("[ScenePresence] Destructor called");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
Loading…
Reference in New Issue