diff options
author | Teravus Ovares | 2008-05-21 21:22:56 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-05-21 21:22:56 +0000 |
commit | 5af108a029e5382f6a2f6d4d10b3d4de3a8f5245 (patch) | |
tree | 171813c4182af2849052281c1e941dec434e6815 /OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs | |
parent | implement in memory appearance cache for sqlite. This (diff) | |
download | opensim-SC-5af108a029e5382f6a2f6d4d10b3d4de3a8f5245.zip opensim-SC-5af108a029e5382f6a2f6d4d10b3d4de3a8f5245.tar.gz opensim-SC-5af108a029e5382f6a2f6d4d10b3d4de3a8f5245.tar.bz2 opensim-SC-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 'OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs | 7 |
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) |