If logging a client out due to ack timeout, do this asynchronously rather than synchronously on the outgoing packet loop.

This is the same async behaviour as normal logouts.
This is necessary because the event queue will sleep the thread for 5 seconds on an ack timeout logout as the client isn't around to pick up the final event queue messages.
This commit is contained in:
Justin Clark-Casey (justincc)
2012-06-08 03:53:03 +01:00
parent 5f4f9f0230
commit c215b1ad16
3 changed files with 23 additions and 10 deletions

View File

@@ -197,7 +197,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
public void TestLogoutClientDueToAck()
{
TestHelpers.InMethod();
TestHelpers.EnableLogging();
// TestHelpers.EnableLogging();
IniConfigSource ics = new IniConfigSource();
IConfig config = ics.AddConfig("ClientStack.LindenUDP");
@@ -210,7 +210,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
ScenePresence spAfterAckTimeout = m_scene.GetScenePresence(sp.UUID);
Assert.That(spAfterAckTimeout, Is.Null);
TestHelpers.DisableLogging();
// TestHelpers.DisableLogging();
}
// /// <summary>