diff options
author | Melanie | 2009-12-06 01:20:39 +0000 |
---|---|---|
committer | Melanie | 2009-12-06 01:20:39 +0000 |
commit | da414fd509a6adfa0499b71172e1c789b3cf7ca4 (patch) | |
tree | 3834001e1a7455284874d7ac7f8b8f5948f0c58b | |
parent | Remove extra forced updates. They're not needed for each prim. Really. (diff) | |
download | opensim-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()
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 14 |
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) |