From 9b675a6888f3c68dacf8cd3b7310a955c1f3dbaf Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Fri, 22 Feb 2008 21:18:08 +0000 Subject: * Converted the last of the events to the private delegate instance method to avoid race conditions. --- OpenSim/Framework/RegionCommsListener.cs | 72 +++++++++++++++++++++----------- 1 file changed, 47 insertions(+), 25 deletions(-) (limited to 'OpenSim/Framework/RegionCommsListener.cs') diff --git a/OpenSim/Framework/RegionCommsListener.cs b/OpenSim/Framework/RegionCommsListener.cs index 41577c6..35e2f26 100644 --- a/OpenSim/Framework/RegionCommsListener.cs +++ b/OpenSim/Framework/RegionCommsListener.cs @@ -45,8 +45,18 @@ namespace OpenSim.Framework public event CloseAgentConnection OnCloseAgentConnection; public event RegionUp OnRegionUp; public event ChildAgentUpdate OnChildAgentUpdate; - + private ExpectUserDelegate handler001 = null; // OnExpectUser + private ExpectPrimDelegate handler002 = null; // OnExpectPrim; + private GenericCall2 handler003 = null; // OnExpectChildAgent; + private AgentCrossing handler004 = null; // OnAvatarCrossingIntoRegion; + private PrimCrossing handler005 = null; // OnPrimCrossingIntoRegion; + private UpdateNeighbours handler006 = null; // OnNeighboursUpdate; + private AcknowledgeAgentCross handler007 = null; // OnAcknowledgeAgentCrossed; + private AcknowledgePrimCross handler008 = null; // OnAcknowledgePrimCrossed; + private CloseAgentConnection handler009 = null; // OnCloseAgentConnection; + private RegionUp handler010 = null; // OnRegionUp; + private ChildAgentUpdate handler011 = null; // OnChildAgentUpdate; public string debugRegionName = String.Empty; @@ -58,9 +68,10 @@ namespace OpenSim.Framework /// public virtual bool TriggerExpectUser(ulong regionHandle, AgentCircuitData agent) { - if (OnExpectUser != null) + handler001 = OnExpectUser; + if (handler001 != null) { - OnExpectUser(regionHandle, agent); + handler001(regionHandle, agent); return true; } @@ -70,9 +81,10 @@ namespace OpenSim.Framework public virtual bool TriggerExpectPrim(ulong regionHandle, LLUUID primID, string objData) { - if (OnExpectPrim != null) + handler002 = OnExpectPrim; + if (handler002 != null) { - OnExpectPrim(regionHandle, primID, objData); + handler002(regionHandle, primID, objData); return true; } return false; @@ -80,9 +92,10 @@ namespace OpenSim.Framework public virtual bool TriggerRegionUp(RegionInfo region) { - if (OnRegionUp != null) + handler010 = OnRegionUp; + if (handler010 != null) { - OnRegionUp(region); + handler010(region); return true; } return false; @@ -90,9 +103,10 @@ namespace OpenSim.Framework public virtual bool TriggerChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData) { - if (OnChildAgentUpdate != null) + handler011 = OnChildAgentUpdate; + if (handler011 != null) { - OnChildAgentUpdate(regionHandle, cAgentData); + handler011(regionHandle, cAgentData); return true; } return false; @@ -101,9 +115,10 @@ namespace OpenSim.Framework public virtual bool TriggerExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying) { - if (OnAvatarCrossingIntoRegion != null) + handler004 = OnAvatarCrossingIntoRegion; + if (handler004 != null) { - OnAvatarCrossingIntoRegion(regionHandle, agentID, position, isFlying); + handler004(regionHandle, agentID, position, isFlying); return true; } return false; @@ -112,9 +127,10 @@ namespace OpenSim.Framework public virtual bool TriggerExpectPrimCrossing(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical) { - if (OnPrimCrossingIntoRegion != null) + handler005 = OnPrimCrossingIntoRegion; + if (handler005 != null) { - OnPrimCrossingIntoRegion(regionHandle, primID, position, isPhysical); + handler005(regionHandle, primID, position, isPhysical); return true; } return false; @@ -122,9 +138,10 @@ namespace OpenSim.Framework public virtual bool TriggerAcknowledgeAgentCrossed(ulong regionHandle, LLUUID agentID) { - if (OnAcknowledgeAgentCrossed != null) + handler007 = OnAcknowledgeAgentCrossed; + if (handler007 != null) { - OnAcknowledgeAgentCrossed(regionHandle, agentID); + handler007(regionHandle, agentID); return true; } return false; @@ -132,9 +149,10 @@ namespace OpenSim.Framework public virtual bool TriggerAcknowledgePrimCrossed(ulong regionHandle, LLUUID primID) { - if (OnAcknowledgePrimCrossed != null) + handler008 = OnAcknowledgePrimCrossed; + if (handler008 != null) { - OnAcknowledgePrimCrossed(regionHandle, primID); + handler008(regionHandle, primID); return true; } return false; @@ -142,9 +160,10 @@ namespace OpenSim.Framework public virtual bool TriggerCloseAgentConnection(ulong regionHandle, LLUUID agentID) { - if (OnCloseAgentConnection != null) + handler009 = OnCloseAgentConnection; + if (handler009 != null) { - OnCloseAgentConnection(regionHandle, agentID); + handler009(regionHandle, agentID); return true; } @@ -158,9 +177,10 @@ namespace OpenSim.Framework /// public virtual bool TriggerExpectChildAgent() { - if (OnExpectChildAgent != null) + handler003 = OnExpectChildAgent; + if (handler003 != null) { - OnExpectChildAgent(); + handler003(); return true; } @@ -175,9 +195,10 @@ namespace OpenSim.Framework /// public virtual bool TriggerOnNeighboursUpdate(List neighbours) { - if (OnNeighboursUpdate != null) + handler006 = OnNeighboursUpdate; + if (handler006 != null) { - OnNeighboursUpdate(neighbours); + handler006(neighbours); return true; } @@ -186,8 +207,9 @@ namespace OpenSim.Framework public bool TriggerTellRegionToCloseChildConnection(ulong regionHandle, LLUUID agentID) { - if (OnCloseAgentConnection != null) - return OnCloseAgentConnection(regionHandle, agentID); + handler009 = OnCloseAgentConnection; + if (handler009 != null) + return handler009(regionHandle, agentID); return false; } -- cgit v1.1