aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDr Scofield2009-02-13 16:11:52 +0000
committerDr Scofield2009-02-13 16:11:52 +0000
commit6600a7a9bc8781f5ccc51abed464c5b32c65a5c3 (patch)
tree7b1e01681bf18369fe30235062691cd9222a1ea5
parentCommented the tests for region crossings for now -- they need to be substanti... (diff)
downloadopensim-SC_OLD-6600a7a9bc8781f5ccc51abed464c5b32c65a5c3.zip
opensim-SC_OLD-6600a7a9bc8781f5ccc51abed464c5b32c65a5c3.tar.gz
opensim-SC_OLD-6600a7a9bc8781f5ccc51abed464c5b32c65a5c3.tar.bz2
opensim-SC_OLD-6600a7a9bc8781f5ccc51abed464c5b32c65a5c3.tar.xz
fixing crash due to make-child and make-root stepping on each other's toes
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs23
1 files changed, 16 insertions, 7 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs b/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs
index 3f99562..83c3c34 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs
@@ -280,9 +280,13 @@ namespace OpenSim.Region.OptionalModules.Avatar.Concierge
280 { 280 {
281 m_log.DebugFormat("[Concierge]: {0} logs off from {1}", client.Name, client.Scene.RegionInfo.RegionName); 281 m_log.DebugFormat("[Concierge]: {0} logs off from {1}", client.Name, client.Scene.RegionInfo.RegionName);
282 RemoveFromAttendeeList(client.AgentId, client.Name, client.Scene); 282 RemoveFromAttendeeList(client.AgentId, client.Name, client.Scene);
283 AnnounceToAgentsRegion(client.Scene, String.Format(m_announceLeaving, client.Name, client.Scene.RegionInfo.RegionName, 283 lock(m_sceneAttendees)
284 m_sceneAttendees[client.Scene].Count)); 284 {
285 UpdateBroker(client.Scene); 285 AnnounceToAgentsRegion(client.Scene, String.Format(m_announceLeaving, client.Name, client.Scene.RegionInfo.RegionName,
286 m_sceneAttendees[client.Scene].Count));
287 UpdateBroker(client.Scene);
288 m_attendeeNames.Remove(client.AgentId);
289 }
286 } 290 }
287 } 291 }
288 292
@@ -348,7 +352,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Concierge
348 } 352 }
349 353
350 attendees.Remove(agentID); 354 attendees.Remove(agentID);
351 m_attendeeNames.Remove(agentID);
352 } 355 }
353 } 356 }
354 357
@@ -386,10 +389,16 @@ namespace OpenSim.Region.OptionalModules.Avatar.Concierge
386 attendees.Count, scene.RegionInfo.RegionName, 389 attendees.Count, scene.RegionInfo.RegionName,
387 scene.RegionInfo.RegionID, 390 scene.RegionInfo.RegionID,
388 DateTime.UtcNow.ToString("s"))); 391 DateTime.UtcNow.ToString("s")));
389 foreach (UUID uuid in attendees) 392 lock(m_sceneAttendees)
390 { 393 {
391 string name = m_attendeeNames[uuid]; 394 foreach (UUID uuid in attendees)
392 list.Append(String.Format(" <avatar name=\"{0}\" uuid=\"{1}\" />\n", name, uuid)); 395 {
396 if (m_attendeeNames.ContainsKey(uuid))
397 {
398 string name = m_attendeeNames[uuid];
399 list.Append(String.Format(" <avatar name=\"{0}\" uuid=\"{1}\" />\n", name, uuid));
400 }
401 }
393 } 402 }
394 list.Append("</avatars>"); 403 list.Append("</avatars>");
395 } 404 }