aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/Agent/TextureDownload/TextureDownloadModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Modules/Agent/TextureDownload/TextureDownloadModule.cs')
-rw-r--r--OpenSim/Region/Environment/Modules/Agent/TextureDownload/TextureDownloadModule.cs58
1 files changed, 25 insertions, 33 deletions
diff --git a/OpenSim/Region/Environment/Modules/Agent/TextureDownload/TextureDownloadModule.cs b/OpenSim/Region/Environment/Modules/Agent/TextureDownload/TextureDownloadModule.cs
index aac6e35..af51df6 100644
--- a/OpenSim/Region/Environment/Modules/Agent/TextureDownload/TextureDownloadModule.cs
+++ b/OpenSim/Region/Environment/Modules/Agent/TextureDownload/TextureDownloadModule.cs
@@ -176,52 +176,44 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureDownload
176 { 176 {
177 ITextureSender sender = null; 177 ITextureSender sender = null;
178 178
179// try 179 try
180// { 180 {
181 while (true) 181 while (true)
182 { 182 {
183 try 183 sender = m_queueSenders.Dequeue();
184
185 if (sender.Cancel)
184 { 186 {
185 sender = m_queueSenders.Dequeue(); 187 TextureSent(sender);
186 188
187 if (sender.Cancel) 189 sender.Cancel = false;
190 }
191 else
192 {
193 bool finished = sender.SendTexturePacket();
194 if (finished)
188 { 195 {
189 TextureSent(sender); 196 TextureSent(sender);
190
191 sender.Cancel = false;
192 } 197 }
193 else 198 else
194 { 199 {
195 bool finished = sender.SendTexturePacket(); 200 m_queueSenders.Enqueue(sender);
196 if (finished)
197 {
198 TextureSent(sender);
199 }
200 else
201 {
202 m_queueSenders.Enqueue(sender);
203 }
204 } 201 }
202 }
205 203
206 // Make sure that any sender we currently have can get garbage collected 204 // Make sure that any sender we currently have can get garbage collected
207 sender = null; 205 sender = null;
208 206
209 //m_log.InfoFormat("[TEXTURE] Texture sender queue size: {0}", m_queueSenders.Count()); 207 //m_log.InfoFormat("[TEXTURE] Texture sender queue size: {0}", m_queueSenders.Count());
210 }
211 catch(Exception e)
212 {
213 m_log.ErrorFormat(
214 "[TEXTURE]: Texture send thread caught exception. The texture send was aborted. Exception is {0}", e);
215 }
216 } 208 }
217// } 209 }
218// catch (Exception e) 210 catch (Exception e)
219// { 211 {
220// // TODO: Let users in the sim and those entering it and possibly an external watchdog know what has happened 212 // TODO: Let users in the sim and those entering it and possibly an external watchdog know what has happened
221// m_log.ErrorFormat( 213 m_log.ErrorFormat(
222// "[TEXTURE]: Texture send thread terminating with exception. PLEASE REBOOT YOUR SIM - TEXTURES WILL NOT BE AVAILABLE UNTIL YOU DO. Exception is {0}", 214 "[TEXTURE]: Texture send thread terminating with exception. PLEASE REBOOT YOUR SIM - TEXTURES WILL NOT BE AVAILABLE UNTIL YOU DO. Exception is {0}",
223// e); 215 e);
224// } 216 }
225 } 217 }
226 218
227 /// <summary> 219 /// <summary>