Add locking on m_primSyncInfoLock in InitPropertiesBySync and InitPropertiesSyncInfoFromOSDMap.
parent
f8bf6c2cc4
commit
eeb09f33e3
|
@ -5190,6 +5190,8 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
else
|
else
|
||||||
initPrimProperties = FullSetPrimProperties;
|
initPrimProperties = FullSetPrimProperties;
|
||||||
|
|
||||||
|
lock (m_primSyncInfoLock)
|
||||||
|
{
|
||||||
foreach (SceneObjectPartSyncProperties property in initPrimProperties)
|
foreach (SceneObjectPartSyncProperties property in initPrimProperties)
|
||||||
{
|
{
|
||||||
Object initValue = GetSOPPropertyValue(part, property);
|
Object initValue = GetSOPPropertyValue(part, property);
|
||||||
|
@ -5197,6 +5199,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
m_propertiesSyncInfo.Add(property, syncInfo);
|
m_propertiesSyncInfo.Add(property, syncInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Decode PropertySyncInfo for each property and insert into m_propertiesSyncInfo.
|
/// Decode PropertySyncInfo for each property and insert into m_propertiesSyncInfo.
|
||||||
|
@ -5204,6 +5207,8 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="primSyncInfoData"></param>
|
/// <param name="primSyncInfoData"></param>
|
||||||
private void InitPropertiesSyncInfoFromOSDMap(OSDMap primSyncInfoData)
|
private void InitPropertiesSyncInfoFromOSDMap(OSDMap primSyncInfoData)
|
||||||
|
{
|
||||||
|
lock (m_primSyncInfoLock)
|
||||||
{
|
{
|
||||||
m_propertiesSyncInfo.Clear();
|
m_propertiesSyncInfo.Clear();
|
||||||
foreach (SceneObjectPartSyncProperties property in FullSetPrimProperties)
|
foreach (SceneObjectPartSyncProperties property in FullSetPrimProperties)
|
||||||
|
@ -5220,6 +5225,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Assumption: the caller already locks the access lock, and no need to lock here
|
//Assumption: the caller already locks the access lock, and no need to lock here
|
||||||
private bool CompareHashedValue_UpdateByLocal(SceneObjectPart part, SceneObjectPartSyncProperties property, long lastUpdateTS, string syncID)
|
private bool CompareHashedValue_UpdateByLocal(SceneObjectPart part, SceneObjectPartSyncProperties property, long lastUpdateTS, string syncID)
|
||||||
|
|
Loading…
Reference in New Issue