aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestExecution.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestExecution.cs9
1 files changed, 8 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestExecution.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestExecution.cs
index bade121..8eec38d 100644
--- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestExecution.cs
+++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestExecution.cs
@@ -29,6 +29,7 @@ using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.IO; 30using System.IO;
31using System.Reflection; 31using System.Reflection;
32using System.Threading;
32using System.Xml; 33using System.Xml;
33using OpenMetaverse; 34using OpenMetaverse;
34using log4net; 35using log4net;
@@ -57,19 +58,22 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
57 protected List<SceneObjectGroup> m_sceneObjects; 58 protected List<SceneObjectGroup> m_sceneObjects;
58 protected RegionInfo m_regionInfo; 59 protected RegionInfo m_regionInfo;
59 protected Stream m_saveStream; 60 protected Stream m_saveStream;
61 protected EventWaitHandle m_signalWhenDoneEvent;
60 62
61 public ArchiveWriteRequestExecution( 63 public ArchiveWriteRequestExecution(
62 List<SceneObjectGroup> sceneObjects, 64 List<SceneObjectGroup> sceneObjects,
63 ITerrainModule terrainModule, 65 ITerrainModule terrainModule,
64 IRegionSerialiserModule serialiser, 66 IRegionSerialiserModule serialiser,
65 RegionInfo regionInfo, 67 RegionInfo regionInfo,
66 Stream saveStream) 68 Stream saveStream,
69 EventWaitHandle signalWhenDoneEvent)
67 { 70 {
68 m_sceneObjects = sceneObjects; 71 m_sceneObjects = sceneObjects;
69 m_terrainModule = terrainModule; 72 m_terrainModule = terrainModule;
70 m_serialiser = serialiser; 73 m_serialiser = serialiser;
71 m_regionInfo = regionInfo; 74 m_regionInfo = regionInfo;
72 m_saveStream = saveStream; 75 m_saveStream = saveStream;
76 m_signalWhenDoneEvent = signalWhenDoneEvent;
73 } 77 }
74 78
75 protected internal void ReceivedAllAssets(IDictionary<UUID, AssetBase> assetsFound, ICollection<UUID> assetsNotFoundUuids) 79 protected internal void ReceivedAllAssets(IDictionary<UUID, AssetBase> assetsFound, ICollection<UUID> assetsNotFoundUuids)
@@ -126,6 +130,9 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
126 archive.WriteTar(m_saveStream); 130 archive.WriteTar(m_saveStream);
127 131
128 m_log.InfoFormat("[ARCHIVER]: Wrote out OpenSimulator archive for {0}", m_regionInfo.RegionName); 132 m_log.InfoFormat("[ARCHIVER]: Wrote out OpenSimulator archive for {0}", m_regionInfo.RegionName);
133
134 if (m_signalWhenDoneEvent != null)
135 m_signalWhenDoneEvent.Set();
129 } 136 }
130 137
131 /// <summary> 138 /// <summary>