aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-06-02 17:54:43 +0000
committerJustin Clarke Casey2008-06-02 17:54:43 +0000
commit615e64696f4120c8e832c61d1b5dd766b9c90ce7 (patch)
treeb96f217825687f6147676cb05594d73b92d24a96
parent* experimental: Make OpenSim archiver save and reload all prim textures when ... (diff)
downloadopensim-SC-615e64696f4120c8e832c61d1b5dd766b9c90ce7.zip
opensim-SC-615e64696f4120c8e832c61d1b5dd766b9c90ce7.tar.gz
opensim-SC-615e64696f4120c8e832c61d1b5dd766b9c90ce7.tar.bz2
opensim-SC-615e64696f4120c8e832c61d1b5dd766b9c90ce7.tar.xz
* experimental: Once we've received all the required assets from the asset service, launch the actual writing of the archive on a separate thread (to stop tieing up the asset cache received notifier thread)
-rw-r--r--OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequest.cs14
1 files changed, 13 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequest.cs
index 86ee753..935a17f 100644
--- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequest.cs
+++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequest.cs
@@ -32,6 +32,7 @@ using OpenSim.Region.Environment.Modules.World.Serialiser;
32using OpenSim.Region.Environment.Scenes; 32using OpenSim.Region.Environment.Scenes;
33using System.Collections.Generic; 33using System.Collections.Generic;
34using System.Reflection; 34using System.Reflection;
35using System.Threading;
35using libsecondlife; 36using libsecondlife;
36using log4net; 37using log4net;
37using Nini.Config; 38using Nini.Config;
@@ -216,8 +217,19 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
216 217
217 if (m_assets.Count == m_repliesRequired) 218 if (m_assets.Count == m_repliesRequired)
218 { 219 {
219 m_assetsRequestCallback(m_assets); 220 // We want to stop using the asset cache thread asap as we now need to do the actual work of producing the archive
221 Thread newThread = new Thread(PerformAssetsRequestCallback);
222 newThread.Name = "OpenSimulator archiving thread post assets receipt";
223 newThread.Start();
220 } 224 }
221 } 225 }
226
227 /// <summary>
228 /// Perform the callback on the original requester of the assets
229 /// </summary>
230 protected void PerformAssetsRequestCallback()
231 {
232 m_assetsRequestCallback(m_assets);
233 }
222 } 234 }
223} 235}