aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Communications/OGS1
diff options
context:
space:
mode:
authorTeravus Ovares2008-02-22 21:18:08 +0000
committerTeravus Ovares2008-02-22 21:18:08 +0000
commit9b675a6888f3c68dacf8cd3b7310a955c1f3dbaf (patch)
tree6ab39fbdad1f04de5316afb5b80dda6f8b37a366 /OpenSim/Region/Communications/OGS1
parent* Downgrade texture exception to a warning. (diff)
downloadopensim-SC-9b675a6888f3c68dacf8cd3b7310a955c1f3dbaf.zip
opensim-SC-9b675a6888f3c68dacf8cd3b7310a955c1f3dbaf.tar.gz
opensim-SC-9b675a6888f3c68dacf8cd3b7310a955c1f3dbaf.tar.bz2
opensim-SC-9b675a6888f3c68dacf8cd3b7310a955c1f3dbaf.tar.xz
* Converted the last of the events to the private delegate instance method to avoid race conditions.
Diffstat (limited to 'OpenSim/Region/Communications/OGS1')
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs43
1 files changed, 28 insertions, 15 deletions
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs
index 3cde55c..d21852d 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs
@@ -59,6 +59,13 @@ namespace OpenSim.Region.Communications.OGS1
59 public event ChildAgentUpdate OnChildAgentUpdate; 59 public event ChildAgentUpdate OnChildAgentUpdate;
60 public event TellRegionToCloseChildConnection OnTellRegionToCloseChildConnection; 60 public event TellRegionToCloseChildConnection OnTellRegionToCloseChildConnection;
61 61
62 private InformRegionChild handler001 = null; // OnChildAgent;
63 private ExpectArrival handler002 = null; // OnArrival;
64 private InformRegionPrimGroup handler003 = null; // OnPrimGroupNear;
65 private PrimGroupArrival handler004 = null; // OnPrimGroupArrival;
66 private RegionUp handler005 = null; // OnRegionUp;
67 private ChildAgentUpdate handler006 = null; // OnChildAgentUpdate;
68 private TellRegionToCloseChildConnection handler007 = null; // OnTellRegionToCloseChildConnection;
62 69
63 70
64 static InterRegionSingleton() 71 static InterRegionSingleton()
@@ -76,64 +83,70 @@ namespace OpenSim.Region.Communications.OGS1
76 83
77 public bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData) 84 public bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData)
78 { 85 {
79 if (OnChildAgent != null) 86 handler001 = OnChildAgent;
87 if (handler001 != null)
80 { 88 {
81 return OnChildAgent(regionHandle, agentData); 89 return handler001(regionHandle, agentData);
82 } 90 }
83 return false; 91 return false;
84 } 92 }
85 93
86 public bool RegionUp(SearializableRegionInfo sregion, ulong regionhandle) 94 public bool RegionUp(SearializableRegionInfo sregion, ulong regionhandle)
87 { 95 {
88 if (OnRegionUp != null) 96 handler005 = OnRegionUp;
97 if (handler005 != null)
89 { 98 {
90 return OnRegionUp(sregion, regionhandle); 99 return handler005(sregion, regionhandle);
91 } 100 }
92 return false; 101 return false;
93 } 102 }
94 103
95 public bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentUpdate) 104 public bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentUpdate)
96 { 105 {
97 if (OnChildAgentUpdate != null) 106 handler006 = OnChildAgentUpdate;
107 if (handler006 != null)
98 { 108 {
99 return OnChildAgentUpdate(regionHandle, cAgentUpdate); 109 return handler006(regionHandle, cAgentUpdate);
100 } 110 }
101 return false; 111 return false;
102 } 112 }
103 113
104 public bool ExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying) 114 public bool ExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying)
105 { 115 {
106 if (OnArrival != null) 116 handler002 = OnArrival;
117 if (handler002 != null)
107 { 118 {
108 return OnArrival(regionHandle, agentID, position, isFlying); 119 return handler002(regionHandle, agentID, position, isFlying);
109 } 120 }
110 return false; 121 return false;
111 } 122 }
112 123
113 public bool InformRegionPrim(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical) 124 public bool InformRegionPrim(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical)
114 { 125 {
115 if (OnPrimGroupNear != null) 126 handler003 = OnPrimGroupNear;
127 if (handler003 != null)
116 { 128 {
117 return OnPrimGroupNear(regionHandle, primID, position, isPhysical); 129 return handler003(regionHandle, primID, position, isPhysical);
118 } 130 }
119 return false; 131 return false;
120 } 132 }
121 133
122 public bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, string objData) 134 public bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, string objData)
123 { 135 {
124 if (OnPrimGroupArrival != null) 136 handler004 = OnPrimGroupArrival;
137 if (handler004 != null)
125 { 138 {
126 return OnPrimGroupArrival(regionHandle, primID, objData); 139 return handler004(regionHandle, primID, objData);
127 } 140 }
128 return false; 141 return false;
129 } 142 }
130 143
131 public bool TellRegionToCloseChildConnection(ulong regionHandle, LLUUID agentID) 144 public bool TellRegionToCloseChildConnection(ulong regionHandle, LLUUID agentID)
132 { 145 {
133 if (OnTellRegionToCloseChildConnection != null) 146 handler007 = OnTellRegionToCloseChildConnection;
147 if (handler007 != null)
134 { 148 {
135 149 return handler007(regionHandle, agentID);
136 return OnTellRegionToCloseChildConnection(regionHandle, agentID);
137 } 150 }
138 return false; 151 return false;
139 } 152 }