diff options
Diffstat (limited to '')
-rwxr-xr-x[-rw-r--r--] | OpenSim/Region/ClientStack/Linden/Caps/GetAssetsModule.cs | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetAssetsModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetAssetsModule.cs index 9187979..734425b 100644..100755 --- a/OpenSim/Region/ClientStack/Linden/Caps/GetAssetsModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/GetAssetsModule.cs | |||
@@ -204,19 +204,26 @@ namespace OpenSim.Region.ClientStack.Linden | |||
204 | 204 | ||
205 | private static void DoAssetRequests() | 205 | private static void DoAssetRequests() |
206 | { | 206 | { |
207 | while (m_NumberScenes > 0) | 207 | try |
208 | { | 208 | { |
209 | APollRequest poolreq; | 209 | while (m_NumberScenes > 0) |
210 | if(m_queue.TryTake(out poolreq, 4500)) | ||
211 | { | 210 | { |
212 | if (m_NumberScenes <= 0) | 211 | APollRequest poolreq; |
213 | break; | 212 | if (m_queue.TryTake(out poolreq, 4500)) |
213 | { | ||
214 | if (m_NumberScenes <= 0) | ||
215 | break; | ||
216 | Watchdog.UpdateThread(); | ||
217 | if (poolreq.reqID != UUID.Zero) | ||
218 | poolreq.thepoll.Process(poolreq); | ||
219 | poolreq = null; | ||
220 | } | ||
214 | Watchdog.UpdateThread(); | 221 | Watchdog.UpdateThread(); |
215 | if (poolreq.reqID != UUID.Zero) | ||
216 | poolreq.thepoll.Process(poolreq); | ||
217 | poolreq = null; | ||
218 | } | 222 | } |
219 | Watchdog.UpdateThread(); | 223 | } |
224 | catch (ThreadAbortException) | ||
225 | { | ||
226 | Thread.ResetAbort(); | ||
220 | } | 227 | } |
221 | } | 228 | } |
222 | 229 | ||