From 427ab32fc31d9fa68635d262bbfbe631fdbb7d12 Mon Sep 17 00:00:00 2001 From: Madpeterz <57852827+Madpeterz@users.noreply.github.com> Date: Thu, 25 Feb 2021 07:24:42 +0000 Subject: [PATCH] locks update --- BetterSecondbot/DataStorage/Datastorage.cs | 2 +- BetterSecondbot/Tracking/BetterTracking.cs | 67 +++++++++++++--------- 2 files changed, 42 insertions(+), 27 deletions(-) diff --git a/BetterSecondbot/DataStorage/Datastorage.cs b/BetterSecondbot/DataStorage/Datastorage.cs index a6bff38..2bd37b0 100644 --- a/BetterSecondbot/DataStorage/Datastorage.cs +++ b/BetterSecondbot/DataStorage/Datastorage.cs @@ -77,7 +77,7 @@ namespace BetterSecondbot.DataStorage working.lastupdated = helpers.UnixTimeNow(); foreach(UUID av in e.Banned) { - working.banned.Add(av,controler.Bot.FindAvatarKey2Name(av)); + working.banned.Add(av,"lookup"); // controler.Bot.FindAvatarKey2Name(av) } working.regionname = controler.Bot.GetClient.Network.CurrentSim.Name; controler.Bot.UpdateSimBlacklist(working); diff --git a/BetterSecondbot/Tracking/BetterTracking.cs b/BetterSecondbot/Tracking/BetterTracking.cs index 93de12d..98a6c33 100644 --- a/BetterSecondbot/Tracking/BetterTracking.cs +++ b/BetterSecondbot/Tracking/BetterTracking.cs @@ -166,22 +166,38 @@ namespace BetterSecondbot.Tracking { if (UUID.TryParse(av.ToString(), out UUID avuuid) == true) { - lock (AvatarSeen) + string name = controler.Bot.FindAvatarKey2Name(avuuid); + int loop = 0; + while((loop < 8) && (name == "lookup")) { - if (AvatarSeen.ContainsKey(avuuid) == false) - { - string name = controler.Bot.FindAvatarKey2Name(avuuid); - int loop = 0; - while((loop < 8) && (name == "lookup")) - { - Thread.Sleep(500); - name = controler.Bot.FindAvatarKey2Name(avuuid); - loop++; - } - output(avuuid, "entry###" + name); - AvatarSeen.Add(avuuid, 0); - } - AvatarSeen[avuuid] = helpers.UnixTimeNow(); + Thread.Sleep(500); + name = controler.Bot.FindAvatarKey2Name(avuuid); + loop++; + } + output(avuuid, "entry###" + name); + addToSeen(avuuid); + } + } + + protected void addToSeen(UUID av) + { + lock (AvatarSeen) + { + if (AvatarSeen.ContainsKey(av) == false) + { + AvatarSeen.Add(av, 0); + } + AvatarSeen[av] = helpers.UnixTimeNow(); + } + } + + protected void removeFromSeen(UUID av) + { + lock (AvatarSeen) + { + if (AvatarSeen.ContainsKey(av) == true) + { + AvatarSeen.Remove(av); } } } @@ -192,22 +208,21 @@ namespace BetterSecondbot.Tracking { if (AvatarSeen.ContainsKey(avuuid) == true) { - lock (AvatarSeen) + string name = controler.Bot.FindAvatarKey2Name(avuuid); + int loop = 0; + while ((loop < 8) && (name == "lookup")) + { + Thread.Sleep(500); + name = controler.Bot.FindAvatarKey2Name(avuuid); + loop++; + } + if (AvatarSeen.ContainsKey(avuuid) == true) { - string name = controler.Bot.FindAvatarKey2Name(avuuid); - int loop = 0; - while ((loop < 8) && (name == "lookup")) - { - Thread.Sleep(500); - name = controler.Bot.FindAvatarKey2Name(avuuid); - loop++; - } output(avuuid, "exit###" + name + "~#~" + AvatarSeen[avuuid].ToString()); - AvatarSeen.Remove(avuuid); + removeFromSeen(avuuid); } } } - }