* In the most basic situations, ClientView and ScenePresence no longer leak memory

* However, I'm no longer sure they were even a big contributory factor (to this particular leak, there are other causes of other leaks).  I need better measurement techniques
* Removed most of my debugging gawp
ThreadPoolClientBranch
Justin Clarke Casey 2008-02-09 01:37:53 +00:00
parent 2dc94870aa
commit a50a8376d6
4 changed files with 18 additions and 12 deletions

View File

@ -51,10 +51,10 @@ namespace OpenSim.Region.ClientStack
/// </summary> /// </summary>
public class ClientView : IClientAPI public class ClientView : IClientAPI
{ {
~ClientView() // ~ClientView()
{ // {
System.Console.WriteLine("[CLIENTVIEW]: Destructor 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);

View File

@ -146,9 +146,12 @@ namespace OpenSim.Region.Environment.Modules
public void ProcessTextureSenders() public void ProcessTextureSenders()
{ {
TextureSender sender = null;
while (true) while (true)
{ {
TextureSender sender = m_queueSenders.Dequeue(); sender = m_queueSenders.Dequeue();
if (sender.Cancel) if (sender.Cancel)
{ {
TextureSent(sender); TextureSent(sender);
@ -168,7 +171,10 @@ namespace OpenSim.Region.Environment.Modules
} }
} }
m_log.Info(String.Format("[TEXTURE DOWNLOAD] Texture sender queue size: {0}", m_queueSenders.Count())); // Make sure that any sender we currently have can get garbage collected
sender = null;
//m_log.Info(String.Format("[TEXTURE DOWNLOAD] Texture sender queue size: {0}", m_queueSenders.Count()));
} }
} }

View File

@ -104,9 +104,9 @@ namespace OpenSim.Region.Environment.Modules
EnqueueTextureSender(textureSender); EnqueueTextureSender(textureSender);
} }
m_log.Info(String.Format("[TEXTURE SENDER] Removing texture sender with uuid {0}", textureID)); //m_log.Info(String.Format("[TEXTURE SENDER] Removing texture sender with uuid {0}", textureID));
m_textureSenders.Remove(textureID); m_textureSenders.Remove(textureID);
m_log.Info(String.Format("[TEXTURE SENDER] Current texture senders in dictionary: {0}", m_textureSenders.Count)); //m_log.Info(String.Format("[TEXTURE SENDER] Current texture senders in dictionary: {0}", m_textureSenders.Count));
} }
else else
{ {

View File

@ -39,10 +39,10 @@ namespace OpenSim.Region.Environment.Scenes
{ {
public class ScenePresence : EntityBase public class ScenePresence : EntityBase
{ {
~ScenePresence() // ~ScenePresence()
{ // {
System.Console.WriteLine("[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);