* 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.
This commit is contained in:
Teravus Ovares
2008-05-21 21:22:56 +00:00
parent 3e997772ea
commit 5af108a029
6 changed files with 87 additions and 39 deletions

View File

@@ -355,10 +355,16 @@ namespace OpenSim.Region.Environment.Scenes
public void TriggerOnBackup(IRegionDataStore dstore)
{
handlerBackup = OnBackup;
if (handlerBackup != null)
Delegate[] items = OnBackup.GetInvocationList();
foreach (OnBackupDelegate del in items)
{
handlerBackup(dstore);
if (del != null)
del(dstore);
}
//if (handlerBackup != null)
//{
// handlerBackup(dstore);
//}
}
public void TriggerParcelPrimCountUpdate()