Просмотр исходного кода

fix a bug on the new expiring things

UbitUmarov 3 лет назад
Родитель
Сommit
c0704af545

+ 6 - 4
OpenSim/Framework/ExpiringCacheOS.cs

@@ -146,17 +146,19 @@ namespace OpenSim.Framework
                             m_expireControl.Remove(key);
                             m_values.Remove(key);
                         }
-                        if(m_expireControl.Count == 0)
-                            DisposeTimer();
-                        else
-                            m_purgeTimer.Change(m_expire, Timeout.Infinite);
                     }
                     finally
                     {
                         if (gotWriteLock)
                             m_rwLock.ExitWriteLock();
                     }
+                    if (m_expireControl.Count == 0)
+                        DisposeTimer();
+                    else
+                        m_purgeTimer.Change(m_expire, Timeout.Infinite);
                 }
+                else
+                    m_purgeTimer.Change(m_expire, Timeout.Infinite);
             }
             finally
             {

+ 6 - 4
OpenSim/Framework/ExpiringKey.cs

@@ -138,17 +138,19 @@ namespace OpenSim.Framework
 
                         foreach (Tkey1 key in expired)
                             m_dictionary.Remove(key);
-                        if(m_dictionary.Count == 0)
-                            DisposeTimer();
-                        else
-                            m_purgeTimer.Change(m_expire, Timeout.Infinite);
                     }
                     finally
                     {
                         if (gotWriteLock)
                             m_rwLock.ExitWriteLock();
                     }
+                    if (m_dictionary.Count == 0)
+                        DisposeTimer();
+                    else
+                        m_purgeTimer.Change(m_expire, Timeout.Infinite);
                 }
+                else
+                    m_purgeTimer.Change(m_expire, Timeout.Infinite);
             }
             finally
             {

+ 2 - 0
OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs

@@ -663,6 +663,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                         continue;
 
                     if(m_blacklistedregions.ContainsKey(st.regionhandle))
+                        continue;
+
                     if (m_cachedRegionMapItemsResponses.TryGetValue(st.regionhandle, out OSDMap responseMap))
                     {
                         if (responseMap != null)