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

@@ -29,6 +29,7 @@ using System;
using System.Text;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using CoreJ2K;
using OpenMetaverse.Assets;
using OpenMetaverse.Imaging;
@@ -64,12 +65,12 @@ namespace OpenMetaverse.TestClient
{
foreach (var sim in Client.Network.Simulators)
{
Avatar targetAv = sim.ObjectsAvatars.Find(
avatar => avatar.ID == target
);
var kvp = sim.ObjectsAvatars.FirstOrDefault(
avatar => avatar.Value.ID == target);
if (targetAv != null)
if (kvp.Value != null)
{
var targetAv = kvp.Value;
StringBuilder output = new StringBuilder("Downloading ");
lock (OutfitAssets) OutfitAssets.Clear();