aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs42
1 files changed, 23 insertions, 19 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
index 322addd..97bb781 100644
--- a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
@@ -60,8 +60,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles
60 // The pair of Dictionaries are used to handle the switching of classified ads 60 // The pair of Dictionaries are used to handle the switching of classified ads
61 // by maintaining a cache of classified id to creator id mappings and an interest 61 // by maintaining a cache of classified id to creator id mappings and an interest
62 // count. The entries are removed when the interest count reaches 0. 62 // count. The entries are removed when the interest count reaches 0.
63 Dictionary<UUID,UUID> classifiedCache = new Dictionary<UUID, UUID>(); 63 Dictionary<UUID,UUID> m_classifiedCache = new Dictionary<UUID, UUID>();
64 Dictionary<UUID,int> classifiedInterest = new Dictionary<UUID, int>(); 64 Dictionary<UUID,int> m_classifiedInterest = new Dictionary<UUID, int>();
65 65
66 public Scene Scene 66 public Scene Scene
67 { 67 {
@@ -331,16 +331,19 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles
331 331
332 classifieds[cid] = name; 332 classifieds[cid] = name;
333 333
334 if(!classifiedCache.ContainsKey(cid)) 334 lock(m_classifiedCache)
335 { 335 {
336 lock(classifiedCache) 336 if (!m_classifiedCache.ContainsKey(cid))
337 classifiedCache.Add(cid,creatorId); 337 {
338 lock(classifiedInterest) 338 m_classifiedCache.Add(cid,creatorId);
339 classifiedInterest.Add(cid, 0); 339
340 lock(m_classifiedInterest)
341 m_classifiedInterest.Add(cid, 0);
342 }
340 } 343 }
341 344
342 lock(classifiedInterest) 345 lock(m_classifiedInterest)
343 classifiedInterest[cid] ++; 346 m_classifiedInterest[cid]++;
344 } 347 }
345 348
346 remoteClient.SendAvatarClassifiedReply(new UUID(args[0]), classifieds); 349 remoteClient.SendAvatarClassifiedReply(new UUID(args[0]), classifieds);
@@ -352,19 +355,20 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles
352 UserClassifiedAdd ad = new UserClassifiedAdd(); 355 UserClassifiedAdd ad = new UserClassifiedAdd();
353 ad.ClassifiedId = queryClassifiedID; 356 ad.ClassifiedId = queryClassifiedID;
354 357
355 if(classifiedCache.ContainsKey(queryClassifiedID)) 358 lock (classifie
359 if (m_classifiedCache.ContainsKey(queryClassifiedID))
356 { 360 {
357 target = classifiedCache[queryClassifiedID]; 361 target = m_classifiedCache[queryClassifiedID];
358 362
359 lock(classifiedInterest) 363 lock(m_classifiedInterest)
360 classifiedInterest[queryClassifiedID] --; 364 m_classifiedInterest[queryClassifiedID] --;
361 365
362 if(classifiedInterest[queryClassifiedID] == 0) 366 if(m_classifiedInterest[queryClassifiedID] == 0)
363 { 367 {
364 lock(classifiedInterest) 368 lock(m_classifiedInterest)
365 classifiedInterest.Remove(queryClassifiedID); 369 m_classifiedInterest.Remove(queryClassifiedID);
366 lock(classifiedCache) 370 lock(m_classifiedCache)
367 classifiedCache.Remove(queryClassifiedID); 371 m_classifiedCache.Remove(queryClassifiedID);
368 } 372 }
369 } 373 }
370 374
@@ -1339,4 +1343,4 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles
1339 } 1343 }
1340 #endregion Web Util 1344 #endregion Web Util
1341 } 1345 }
1342} 1346} \ No newline at end of file