* It appears that sometimes some IClientAPI reference is not being released, resulting in continual execution of the CheckConnectivity timer method

* For now, just turn off this timer when we close the connection
* Also some minor help refactoring creeps in to this revision.
This commit is contained in:
Justin Clarke Casey
2008-08-18 21:14:38 +00:00
parent 9f2928efe6
commit 9650632cd1
4 changed files with 87 additions and 5 deletions

View File

@@ -456,6 +456,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// <param name="shutdownCircuit"></param>
public void Close(bool shutdownCircuit)
{
m_clientPingTimer.Enabled = false;
m_log.DebugFormat(
"[CLIENT]: Close has been called with shutdownCircuit = {0} on scene {1}",
shutdownCircuit, m_scene.RegionInfo.RegionName);
@@ -655,14 +657,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if ((m_probesWithNoIngressPackets > 30 && !m_clientBlocked)
|| (m_probesWithNoIngressPackets > 90 && m_clientBlocked))
{
m_clientPingTimer.Enabled = false;
m_log.WarnFormat(
"[CLIENT]: Client for agent {0} {1} has stopped responding to pings. Closing connection",
Name, AgentId);
if (OnConnectionClosed != null)
{
m_log.WarnFormat(
"[CLIENT]: Client for agent {0} {1} has stopped responding to pings. Closing connection",
Name, AgentId);
OnConnectionClosed(this);
}
}
}
else
{