aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
diff options
context:
space:
mode:
authorRobert Adams2019-02-27 07:49:52 -0800
committerRobert Adams2019-02-27 07:49:52 -0800
commitbd1b992aaf57154fd57403348a1ab63bfd918ad9 (patch)
tree45c627049706614e14de445e9dab2dcc9b072b9a /OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
parent combat module: those parcel changes are now handled elsewhere (diff)
downloadopensim-SC-bd1b992aaf57154fd57403348a1ab63bfd918ad9.zip
opensim-SC-bd1b992aaf57154fd57403348a1ab63bfd918ad9.tar.gz
opensim-SC-bd1b992aaf57154fd57403348a1ab63bfd918ad9.tar.bz2
opensim-SC-bd1b992aaf57154fd57403348a1ab63bfd918ad9.tar.xz
Add Thread.ResetAbort() to various thread loops to clean up errors on
shutdown. Fixes Mantis #8494. Threads are aborted when shutting down and ThreadAbortException is odd in that it is rethrown at the end of the catch unless the abort is reset. No functional changes but fewer error messages on shutdown.
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs')
-rwxr-xr-x[-rw-r--r--]OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs23
1 files changed, 16 insertions, 7 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
index 41d70a3..9a01567 100644..100755
--- a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
@@ -395,17 +395,26 @@ namespace OpenSim.Region.ClientStack.Linden
395 395
396 private static void DoInventoryRequests() 396 private static void DoInventoryRequests()
397 { 397 {
398 while (true) 398 bool running = true;
399 while (running)
399 { 400 {
400 APollRequest poolreq; 401 try
401 if (m_queue.TryTake(out poolreq, 4500))
402 { 402 {
403 APollRequest poolreq;
404 if (m_queue.TryTake(out poolreq, 4500))
405 {
406 Watchdog.UpdateThread();
407 if (poolreq.thepoll != null)
408 poolreq.thepoll.Process(poolreq);
409 poolreq = null;
410 }
403 Watchdog.UpdateThread(); 411 Watchdog.UpdateThread();
404 if (poolreq.thepoll != null)
405 poolreq.thepoll.Process(poolreq);
406 poolreq = null;
407 } 412 }
408 Watchdog.UpdateThread(); 413 catch (ThreadAbortException)
414 {
415 Thread.ResetAbort();
416 running = false;
417 }
409 } 418 }
410 } 419 }
411 } 420 }