From 582964800cc30e5ad08cf3be9a6a49fa96dd8b68 Mon Sep 17 00:00:00 2001
From: Teravus Ovares
Date: Fri, 22 Feb 2008 19:44:46 +0000
Subject: * Moved all events except gridcomms and regioncomms over to Event
Delegate instances to prevent event race conditions
---
OpenSim/Region/Environment/Scenes/InnerScene.cs | 6 ++++--
OpenSim/Region/Environment/Scenes/SceneBase.cs | 4 +++-
OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 6 ++++--
OpenSim/Region/Environment/Scenes/ScenePresence.cs | 7 +++++--
OpenSim/Region/Environment/Scenes/SimStatsReporter.cs | 7 +++++--
5 files changed, 21 insertions(+), 9 deletions(-)
(limited to 'OpenSim/Region/Environment/Scenes')
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs
index 38bcb03..fea6b2b 100644
--- a/OpenSim/Region/Environment/Scenes/InnerScene.cs
+++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs
@@ -47,6 +47,7 @@ namespace OpenSim.Region.Environment.Scenes
#region Events
public event PhysicsCrash UnRecoverableError;
+ private PhysicsCrash handler001 = null;
#endregion
@@ -715,9 +716,10 @@ namespace OpenSim.Region.Environment.Scenes
public void physicsBasedCrash()
{
- if (UnRecoverableError != null)
+ handler001 = UnRecoverableError;
+ if (handler001 != null)
{
- UnRecoverableError();
+ handler001();
}
}
diff --git a/OpenSim/Region/Environment/Scenes/SceneBase.cs b/OpenSim/Region/Environment/Scenes/SceneBase.cs
index 4e05682..3371912 100644
--- a/OpenSim/Region/Environment/Scenes/SceneBase.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneBase.cs
@@ -160,7 +160,9 @@ namespace OpenSim.Region.Environment.Scenes
public virtual void Restart(int seconds)
{
m_log.Error("[REGION]: passing Restart Message up the namespace");
- OnRestart(RegionInfo);
+ restart handler001 = OnRestart;
+ if (handler001 != null)
+ handler001(RegionInfo);
}
public virtual bool PresenceChildStatus(LLUUID avatarID)
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 2e4135c..8fd9edb 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -54,6 +54,7 @@ namespace OpenSim.Region.Environment.Scenes
protected ulong m_regionHandle;
public event PrimCountTaintedDelegate OnPrimCountTainted;
+ private PrimCountTaintedDelegate handler001 = null;
///
/// Signal whether the non-inventory attributes of any prims in the group have changed
@@ -1525,9 +1526,10 @@ namespace OpenSim.Region.Environment.Scenes
///
public void TriggerTainted()
{
- if (OnPrimCountTainted != null)
+ handler001 = OnPrimCountTainted;
+ if (handler001 != null)
{
- OnPrimCountTainted();
+ handler001();
}
}
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 2d01282..9b80444 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -116,6 +116,8 @@ namespace OpenSim.Region.Environment.Scenes
private readonly List m_knownChildRegions = new List();
//neighbouring regions we have enabled a child agent in
+ private SignificantClientMovement handler001 = null; //OnSignificantClientMovement;
+
///
/// Implemented Control Flags
@@ -1482,9 +1484,10 @@ namespace OpenSim.Region.Environment.Scenes
if (Util.GetDistanceTo(AbsolutePosition, posLastSignificantMove) > 0.5)
{
posLastSignificantMove = AbsolutePosition;
- if (OnSignificantClientMovement != null)
+
+ if (handler001 != null)
{
- OnSignificantClientMovement(m_controllingClient);
+ handler001(m_controllingClient);
m_scene.NotifyMyCoarseLocationChange();
}
}
diff --git a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs
index 90e09b0..d4868f3 100644
--- a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs
+++ b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs
@@ -39,6 +39,8 @@ namespace OpenSim.Region.Environment.Scenes
public event SendStatResult OnSendStatsResult;
+ private SendStatResult handler001 = null;
+
private enum Stats : uint
{
TimeDilation = 0,
@@ -245,9 +247,10 @@ namespace OpenSim.Region.Environment.Scenes
statpack.Stat = sb;
- if (OnSendStatsResult != null)
+ handler001 = OnSendStatsResult;
+ if (handler001 != null)
{
- OnSendStatsResult(statpack);
+ handler001(statpack);
}
resetvalues();
m_report.Enabled = true;
--
cgit v1.1