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/EventManager.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 '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/EventManager.cs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Scenes/EventManager.cs b/OpenSim/Region/Environment/Scenes/EventManager.cs index 7ff9213..c6daa28 100644 --- a/OpenSim/Region/Environment/Scenes/EventManager.cs +++ b/OpenSim/Region/Environment/Scenes/EventManager.cs | |||
@@ -355,10 +355,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
355 | public void TriggerOnBackup(IRegionDataStore dstore) | 355 | public void TriggerOnBackup(IRegionDataStore dstore) |
356 | { | 356 | { |
357 | handlerBackup = OnBackup; | 357 | handlerBackup = OnBackup; |
358 | if (handlerBackup != null) | 358 | Delegate[] items = OnBackup.GetInvocationList(); |
359 | foreach (OnBackupDelegate del in items) | ||
359 | { | 360 | { |
360 | handlerBackup(dstore); | 361 | if (del != null) |
362 | del(dstore); | ||
361 | } | 363 | } |
364 | //if (handlerBackup != null) | ||
365 | //{ | ||
366 | // handlerBackup(dstore); | ||
367 | //} | ||
362 | } | 368 | } |
363 | 369 | ||
364 | public void TriggerParcelPrimCountUpdate() | 370 | public void TriggerParcelPrimCountUpdate() |