Prevent race conditions between two threads that call LLClientView.Close() simultaneously (e.g. ack timeout and an attempt to reconnect)

This commit is contained in:
Justin Clark-Casey (justincc)
2012-07-19 22:32:27 +01:00
parent e9a121e1b2
commit ba80f137b5
3 changed files with 60 additions and 33 deletions

View File

@@ -3517,8 +3517,8 @@ namespace OpenSim.Region.Framework.Scenes
// We have a zombie from a crashed session.
// Or the same user is trying to be root twice here, won't work.
// Kill it.
m_log.DebugFormat(
"[SCENE]: Zombie scene presence detected for {0} {1} in {2}",
m_log.WarnFormat(
"[SCENE]: Existing root scene presence detected for {0} {1} in {2} when connecting. Removing existing presence.",
sp.Name, sp.UUID, RegionInfo.RegionName);
sp.ControllingClient.Close();
@@ -4474,7 +4474,7 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary>
/// <remarks>
/// This method will return both root and child scene presences.
///
///
/// Consider using ForEachScenePresence() or ForEachRootScenePresence() if possible since these will not
/// involving creating a new List object.
/// </remarks>