diff options
author | Justin Clarke Casey | 2009-04-14 17:15:09 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2009-04-14 17:15:09 +0000 |
commit | 1894157dd3608a15c3336efc2d58eee0de092610 (patch) | |
tree | cfecb8e2104d9a88e82670e27ecedbda0466fa88 /OpenSim/Framework/Communications/Cache/AssetServerBase.cs | |
parent | * refactor: rename AssetCache.Initialize() to AssetCache.Reset() to avoid hav... (diff) | |
download | opensim-SC_OLD-1894157dd3608a15c3336efc2d58eee0de092610.zip opensim-SC_OLD-1894157dd3608a15c3336efc2d58eee0de092610.tar.gz opensim-SC_OLD-1894157dd3608a15c3336efc2d58eee0de092610.tar.bz2 opensim-SC_OLD-1894157dd3608a15c3336efc2d58eee0de092610.tar.xz |
* Explicitly start the asset server thread so that unit tests can run single rather than multi-threaded (which may be behind the occasional test freezes)
Diffstat (limited to 'OpenSim/Framework/Communications/Cache/AssetServerBase.cs')
-rw-r--r-- | OpenSim/Framework/Communications/Cache/AssetServerBase.cs | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs index 1d0c030..343667a 100644 --- a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs +++ b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs | |||
@@ -42,7 +42,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
42 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 42 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
43 | 43 | ||
44 | protected IAssetReceiver m_receiver; | 44 | protected IAssetReceiver m_receiver; |
45 | protected BlockingQueue<AssetRequest> m_assetRequests; | 45 | protected BlockingQueue<AssetRequest> m_assetRequests = new BlockingQueue<AssetRequest>(); |
46 | protected Thread m_localAssetServerThread; | 46 | protected Thread m_localAssetServerThread; |
47 | protected IAssetDataPlugin m_assetProvider; | 47 | protected IAssetDataPlugin m_assetProvider; |
48 | 48 | ||
@@ -109,6 +109,22 @@ namespace OpenSim.Framework.Communications.Cache | |||
109 | // Temporarily hardcoded - should be a plugin | 109 | // Temporarily hardcoded - should be a plugin |
110 | protected IAssetLoader assetLoader = new AssetLoaderFileSystem(); | 110 | protected IAssetLoader assetLoader = new AssetLoaderFileSystem(); |
111 | 111 | ||
112 | public virtual void Start() | ||
113 | { | ||
114 | m_log.Debug("[ASSET SERVER]: Starting asset server"); | ||
115 | |||
116 | m_localAssetServerThread = new Thread(RunRequests); | ||
117 | m_localAssetServerThread.Name = "LocalAssetServerThread"; | ||
118 | m_localAssetServerThread.IsBackground = true; | ||
119 | m_localAssetServerThread.Start(); | ||
120 | ThreadTracker.Add(m_localAssetServerThread); | ||
121 | } | ||
122 | |||
123 | public virtual void Stop() | ||
124 | { | ||
125 | m_localAssetServerThread.Abort(); | ||
126 | } | ||
127 | |||
112 | public abstract void StoreAsset(AssetBase asset); | 128 | public abstract void StoreAsset(AssetBase asset); |
113 | 129 | ||
114 | /// <summary> | 130 | /// <summary> |
@@ -121,8 +137,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
121 | /// Thrown if the request failed for some other reason than that the | 137 | /// Thrown if the request failed for some other reason than that the |
122 | /// asset cannot be found. | 138 | /// asset cannot be found. |
123 | /// </exception> | 139 | /// </exception> |
124 | protected abstract AssetBase GetAsset(AssetRequest req); | 140 | protected abstract AssetBase GetAsset(AssetRequest req); |
125 | 141 | ||
126 | /// <summary> | 142 | /// <summary> |
127 | /// Process an asset request. This method will call GetAsset(AssetRequest req) | 143 | /// Process an asset request. This method will call GetAsset(AssetRequest req) |
128 | /// on the subclass. | 144 | /// on the subclass. |
@@ -169,18 +185,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
169 | assetLoader.ForEachDefaultXmlAsset(pAssetSetsXml, StoreAsset); | 185 | assetLoader.ForEachDefaultXmlAsset(pAssetSetsXml, StoreAsset); |
170 | } | 186 | } |
171 | 187 | ||
172 | public AssetServerBase() | ||
173 | { | ||
174 | m_log.Info("[ASSET SERVER]: Starting asset storage system"); | ||
175 | m_assetRequests = new BlockingQueue<AssetRequest>(); | ||
176 | |||
177 | m_localAssetServerThread = new Thread(RunRequests); | ||
178 | m_localAssetServerThread.Name = "LocalAssetServerThread"; | ||
179 | m_localAssetServerThread.IsBackground = true; | ||
180 | m_localAssetServerThread.Start(); | ||
181 | ThreadTracker.Add(m_localAssetServerThread); | ||
182 | } | ||
183 | |||
184 | private void RunRequests() | 188 | private void RunRequests() |
185 | { | 189 | { |
186 | while (true) // Since it's a 'blocking queue' | 190 | while (true) // Since it's a 'blocking queue' |
@@ -222,11 +226,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
222 | m_assetProvider.UpdateAsset(asset); | 226 | m_assetProvider.UpdateAsset(asset); |
223 | } | 227 | } |
224 | 228 | ||
225 | public virtual void Close() | ||
226 | { | ||
227 | m_localAssetServerThread.Abort(); | ||
228 | } | ||
229 | |||
230 | public void SetServerInfo(string ServerUrl, string ServerKey) | 229 | public void SetServerInfo(string ServerUrl, string ServerKey) |
231 | { | 230 | { |
232 | } | 231 | } |