diff --git a/OpenSim/Framework/ExpiringCacheOS.cs b/OpenSim/Framework/ExpiringCacheOS.cs index 64c21d1be8..c246758a7c 100644 --- a/OpenSim/Framework/ExpiringCacheOS.cs +++ b/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 { diff --git a/OpenSim/Framework/ExpiringKey.cs b/OpenSim/Framework/ExpiringKey.cs index 106dab6e24..2c4adc2242 100644 --- a/OpenSim/Framework/ExpiringKey.cs +++ b/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 { diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index e81141e007..249b1f0eda 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/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)