aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs32
1 files changed, 18 insertions, 14 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
index 5b228ee..a97c9b4 100644
--- a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
@@ -169,6 +169,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles
169 169
170 void HandleOnMakeRootAgent (ScenePresence obj) 170 void HandleOnMakeRootAgent (ScenePresence obj)
171 { 171 {
172 if(obj.PresenceType == PresenceType.Npc)
173 return;
174
172 GetImageAssets(((IScenePresence)obj).UUID); 175 GetImageAssets(((IScenePresence)obj).UUID);
173 } 176 }
174 177
@@ -326,14 +329,17 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles
326 string name = m["name"].AsString(); 329 string name = m["name"].AsString();
327 330
328 classifieds[cid] = name; 331 classifieds[cid] = name;
329 332
330 if(!classifiedCache.ContainsKey(cid)) 333 if(!classifiedCache.ContainsKey(cid))
331 { 334 {
332 classifiedCache.Add(cid,creatorId); 335 lock(classifiedCache)
333 classifiedInterest.Add(cid, 0); 336 classifiedCache.Add(cid,creatorId);
337 lock(classifiedInterest)
338 classifiedInterest.Add(cid, 0);
334 } 339 }
335 340
336 classifiedInterest[cid] ++; 341 lock(classifiedInterest)
342 classifiedInterest[cid] ++;
337 } 343 }
338 344
339 remoteClient.SendAvatarClassifiedReply(new UUID(args[0]), classifieds); 345 remoteClient.SendAvatarClassifiedReply(new UUID(args[0]), classifieds);
@@ -346,22 +352,20 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles
346 ad.ClassifiedId = queryClassifiedID; 352 ad.ClassifiedId = queryClassifiedID;
347 353
348 if(classifiedCache.ContainsKey(queryClassifiedID)) 354 if(classifiedCache.ContainsKey(queryClassifiedID))
349 { 355 {
350 target = classifiedCache[queryClassifiedID]; 356 target = classifiedCache[queryClassifiedID];
351 357
352 if(classifiedInterest[queryClassifiedID] -- == 0) 358 lock(classifiedInterest)
359 classifiedInterest[queryClassifiedID] --;
360
361 if(classifiedInterest[queryClassifiedID] == 0)
353 { 362 {
363 lock(classifiedInterest)
364 classifiedInterest.Remove(queryClassifiedID);
354 lock(classifiedCache) 365 lock(classifiedCache)
355 {
356 lock(classifiedInterest)
357 {
358 classifiedInterest.Remove(queryClassifiedID);
359 }
360 classifiedCache.Remove(queryClassifiedID); 366 classifiedCache.Remove(queryClassifiedID);
361 }
362 } 367 }
363 } 368 }
364
365 369
366 string serverURI = string.Empty; 370 string serverURI = string.Empty;
367 bool foreign = GetUserProfileServerURI(target, out serverURI); 371 bool foreign = GetUserProfileServerURI(target, out serverURI);