aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2009-12-06 01:20:39 +0000
committerMelanie2009-12-06 01:20:39 +0000
commitda414fd509a6adfa0499b71172e1c789b3cf7ca4 (patch)
tree3834001e1a7455284874d7ac7f8b8f5948f0c58b /OpenSim
parentRemove extra forced updates. They're not needed for each prim. Really. (diff)
downloadopensim-SC-da414fd509a6adfa0499b71172e1c789b3cf7ca4.zip
opensim-SC-da414fd509a6adfa0499b71172e1c789b3cf7ca4.tar.gz
opensim-SC-da414fd509a6adfa0499b71172e1c789b3cf7ca4.tar.bz2
opensim-SC-da414fd509a6adfa0499b71172e1c789b3cf7ca4.tar.xz
Change locking to not mix explicit Monitor.* calls with lock()
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs14
1 files changed, 12 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 5efe188..4bdc52c 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -1562,7 +1562,8 @@ namespace OpenSim.Region.Framework.Scenes
1562 /// <param name="childPrims"></param> 1562 /// <param name="childPrims"></param>
1563 protected internal void LinkObjects(IClientAPI client, uint parentPrimId, List<uint> childPrimIds) 1563 protected internal void LinkObjects(IClientAPI client, uint parentPrimId, List<uint> childPrimIds)
1564 { 1564 {
1565 lock (m_updateLock) 1565 Monitor.Enter(m_updateLock);
1566 try
1566 { 1567 {
1567 SceneObjectGroup parentGroup = GetGroupByPrim(parentPrimId); 1568 SceneObjectGroup parentGroup = GetGroupByPrim(parentPrimId);
1568 1569
@@ -1617,6 +1618,10 @@ namespace OpenSim.Region.Framework.Scenes
1617 } 1618 }
1618 } 1619 }
1619 } 1620 }
1621 finally
1622 {
1623 Monitor.Exit(m_updateLock);
1624 }
1620 } 1625 }
1621 1626
1622 /// <summary> 1627 /// <summary>
@@ -1630,7 +1635,8 @@ namespace OpenSim.Region.Framework.Scenes
1630 1635
1631 protected internal void DelinkObjects(List<uint> primIds, bool sendEvents) 1636 protected internal void DelinkObjects(List<uint> primIds, bool sendEvents)
1632 { 1637 {
1633 lock (m_updateLock) 1638 Monitor.Enter(m_updateLock);
1639 try
1634 { 1640 {
1635 List<SceneObjectPart> childParts = new List<SceneObjectPart>(); 1641 List<SceneObjectPart> childParts = new List<SceneObjectPart>();
1636 List<SceneObjectPart> rootParts = new List<SceneObjectPart>(); 1642 List<SceneObjectPart> rootParts = new List<SceneObjectPart>();
@@ -1737,6 +1743,10 @@ namespace OpenSim.Region.Framework.Scenes
1737 g.ScheduleGroupForFullUpdate(); 1743 g.ScheduleGroupForFullUpdate();
1738 } 1744 }
1739 } 1745 }
1746 finally
1747 {
1748 Monitor.Exit(m_updateLock);
1749 }
1740 } 1750 }
1741 1751
1742 protected internal void MakeObjectSearchable(IClientAPI remoteClient, bool IncludeInSearch, uint localID) 1752 protected internal void MakeObjectSearchable(IClientAPI remoteClient, bool IncludeInSearch, uint localID)