aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/EventManager.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/EventManager.cs
parentimplement in memory appearance cache for sqlite. This (diff)
downloadopensim-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.cs10
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()