aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
diff options
context:
space:
mode:
authorTeravus Ovares2008-05-21 21:22:56 +0000
committerTeravus Ovares2008-05-21 21:22:56 +0000
commit5af108a029e5382f6a2f6d4d10b3d4de3a8f5245 (patch)
tree171813c4182af2849052281c1e941dec434e6815 /OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
parentimplement in memory appearance cache for sqlite. This (diff)
downloadopensim-SC_OLD-5af108a029e5382f6a2f6d4d10b3d4de3a8f5245.zip
opensim-SC_OLD-5af108a029e5382f6a2f6d4d10b3d4de3a8f5245.tar.gz
opensim-SC_OLD-5af108a029e5382f6a2f6d4d10b3d4de3a8f5245.tar.bz2
opensim-SC_OLD-5af108a029e5382f6a2f6d4d10b3d4de3a8f5245.tar.xz
* This update causes the backup process to run in a separate thread.
* Concurrency issues are resolved because each object makes a memory-only copy of itself and backs up the copy. * Because of the way this is done, the latest at the time of the backup gets backed up (no functionality change) * You can move *thousands of objects at a time* and the sim doesn't freeze and wait for the backup to complete. * This can be enhanced more by dedicating the thread as opposed to starting it when the backup process starts.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs7
1 files changed, 5 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
index d63260d..51521ff 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
@@ -99,7 +99,7 @@ namespace OpenSim.Region.Environment.Scenes
99 } 99 }
100 100
101 HasInventoryChanged = true; 101 HasInventoryChanged = true;
102 102 ParentGroup.HasGroupChanged = true;
103 IList<TaskInventoryItem> items = new List<TaskInventoryItem>(TaskInventory.Values); 103 IList<TaskInventoryItem> items = new List<TaskInventoryItem>(TaskInventory.Values);
104 TaskInventory.Clear(); 104 TaskInventory.Clear();
105 105
@@ -121,7 +121,7 @@ namespace OpenSim.Region.Environment.Scenes
121 } 121 }
122 122
123 HasInventoryChanged = true; 123 HasInventoryChanged = true;
124 124 ParentGroup.HasGroupChanged = true;
125 IList<TaskInventoryItem> items = new List<TaskInventoryItem>(TaskInventory.Values); 125 IList<TaskInventoryItem> items = new List<TaskInventoryItem>(TaskInventory.Values);
126 foreach (TaskInventoryItem item in items) 126 foreach (TaskInventoryItem item in items)
127 { 127 {
@@ -304,6 +304,7 @@ namespace OpenSim.Region.Environment.Scenes
304 m_inventorySerial++; 304 m_inventorySerial++;
305 //m_inventorySerial += 2; 305 //m_inventorySerial += 2;
306 HasInventoryChanged = true; 306 HasInventoryChanged = true;
307 ParentGroup.HasGroupChanged = true;
307 } 308 }
308 309
309 /// <summary> 310 /// <summary>
@@ -373,6 +374,7 @@ namespace OpenSim.Region.Environment.Scenes
373 TriggerScriptChangedEvent(Changed.INVENTORY); 374 TriggerScriptChangedEvent(Changed.INVENTORY);
374 375
375 HasInventoryChanged = true; 376 HasInventoryChanged = true;
377 ParentGroup.HasGroupChanged = true;
376 378
377 return true; 379 return true;
378 } 380 }
@@ -411,6 +413,7 @@ namespace OpenSim.Region.Environment.Scenes
411 TriggerScriptChangedEvent(Changed.INVENTORY); 413 TriggerScriptChangedEvent(Changed.INVENTORY);
412 414
413 HasInventoryChanged = true; 415 HasInventoryChanged = true;
416 ParentGroup.HasGroupChanged = true;
414 417
415 int scriptcount = 0; 418 int scriptcount = 0;
416 lock (m_taskInventory) 419 lock (m_taskInventory)