ObjectsAvatars and ObjectsPrimitives are now ConcurrentDictionary to avoid a rather nasty locking bottleneck.

This commit is contained in:
cinder
2025-05-27 14:16:03 -05:00
parent b25e647e9f
commit 5ee53b32ac
25 changed files with 747 additions and 759 deletions

View File

@@ -1,3 +1,4 @@
using System.Linq;
using System.Text;
namespace OpenMetaverse.TestClient
@@ -17,18 +18,12 @@ namespace OpenMetaverse.TestClient
lock (Client.Network.Simulators)
{
foreach (var sim
in Client.Network.Simulators)
foreach (var av in from sim in Client.Network.Simulators
from kvp in sim.ObjectsAvatars where kvp.Value != null select kvp.Value)
{
sim
.ObjectsAvatars.ForEach(
delegate(Avatar av)
{
result.AppendLine();
result.AppendFormat("{0} (Group: {1}, Location: {2}, UUID: {3} LocalID: {4})",
av.Name, av.GroupName, av.Position, av.ID, av.LocalID);
}
);
result.AppendLine();
result.AppendFormat("{0} (Group: {1}, Location: {2}, UUID: {3} LocalID: {4})",
av.Name, av.GroupName, av.Position, av.ID, av.LocalID);
}
}