On a teleport, lock m_agentsInTransit whilst we grab the value to check for completion just to be sure we're not using a thread cached version.
parent
4de530af45
commit
46c833810c
|
@ -292,8 +292,15 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
||||||
|
|
||||||
// There should be no race condition here since no other code should be removing the agent transfer or
|
// There should be no race condition here since no other code should be removing the agent transfer or
|
||||||
// changing the state to another other than Transferring => ReceivedAtDestination.
|
// changing the state to another other than Transferring => ReceivedAtDestination.
|
||||||
while (m_agentsInTransit[id] != AgentTransferState.ReceivedAtDestination && count-- > 0)
|
|
||||||
|
while (count-- > 0)
|
||||||
{
|
{
|
||||||
|
lock (m_agentsInTransit)
|
||||||
|
{
|
||||||
|
if (m_agentsInTransit[id] == AgentTransferState.ReceivedAtDestination)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// m_log.Debug(" >>> Waiting... " + count);
|
// m_log.Debug(" >>> Waiting... " + count);
|
||||||
Thread.Sleep(100);
|
Thread.Sleep(100);
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,7 +107,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestSameSimulatorSeparatedRegions()
|
public void TestSameSimulatorIsolatedRegions()
|
||||||
{
|
{
|
||||||
TestHelpers.InMethod();
|
TestHelpers.InMethod();
|
||||||
// TestHelpers.EnableLogging();
|
// TestHelpers.EnableLogging();
|
||||||
|
@ -180,7 +180,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
|
||||||
/// Test teleport procedures when the target simulator returns false when queried about access.
|
/// Test teleport procedures when the target simulator returns false when queried about access.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Test]
|
[Test]
|
||||||
public void TestSameSimulatorSeparatedRegions_DeniedOnQueryAccess()
|
public void TestSameSimulatorIsolatedRegions_DeniedOnQueryAccess()
|
||||||
{
|
{
|
||||||
TestHelpers.InMethod();
|
TestHelpers.InMethod();
|
||||||
// TestHelpers.EnableLogging();
|
// TestHelpers.EnableLogging();
|
||||||
|
@ -264,7 +264,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
|
||||||
/// Test teleport procedures when the target simulator create agent step is refused.
|
/// Test teleport procedures when the target simulator create agent step is refused.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Test]
|
[Test]
|
||||||
public void TestSameSimulatorSeparatedRegions_DeniedOnCreateAgent()
|
public void TestSameSimulatorIsolatedRegions_DeniedOnCreateAgent()
|
||||||
{
|
{
|
||||||
TestHelpers.InMethod();
|
TestHelpers.InMethod();
|
||||||
// TestHelpers.EnableLogging();
|
// TestHelpers.EnableLogging();
|
||||||
|
@ -345,7 +345,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
|
||||||
/// (for CreateAgent) but the viewer cannot reach the destination region due to network issues.
|
/// (for CreateAgent) but the viewer cannot reach the destination region due to network issues.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
[Test]
|
[Test]
|
||||||
public void TestSameSimulatorSeparatedRegions_DestinationDidNotProcessViewerConnection()
|
public void TestSameSimulatorIsolatedRegions_DestinationDidNotProcessViewerConnection()
|
||||||
{
|
{
|
||||||
TestHelpers.InMethod();
|
TestHelpers.InMethod();
|
||||||
// TestHelpers.EnableLogging();
|
// TestHelpers.EnableLogging();
|
||||||
|
|
Loading…
Reference in New Issue