Browse Source

- Increased the threadpool timeout to 10 minutes
- Changed a few places that launch long-lasting threads to skip the timeout altogether

Oren Hurvitz 10 years ago
parent
commit
7a47c15edb

+ 3 - 3
OpenSim/Addons/Groups/Hypergrid/GroupsServiceHGConnectorModule.cs

@@ -1,4 +1,4 @@
-/*
+/*
  * Copyright (c) Contributors, http://opensimulator.org/
  * Copyright (c) Contributors, http://opensimulator.org/
  * See CONTRIBUTORS.TXT for a full list of copyright holders.
  * See CONTRIBUTORS.TXT for a full list of copyright holders.
  *
  *
@@ -560,7 +560,7 @@ namespace OpenSim.Groups
 
 
                     // so we have the list of urls to send the notice to
                     // so we have the list of urls to send the notice to
                     // this may take a long time...
                     // this may take a long time...
-                    Util.FireAndForget(delegate
+                    Util.RunThreadNoTimeout(delegate
                     {
                     {
                         foreach (string u in urls)
                         foreach (string u in urls)
                         {
                         {
@@ -571,7 +571,7 @@ namespace OpenSim.Groups
                                     hasAttachment, attType, attName, attItemID, AgentUUIForOutside(attOwnerID));
                                     hasAttachment, attType, attName, attItemID, AgentUUIForOutside(attOwnerID));
                             }
                             }
                         }
                         }
-                    });
+                    }, "AddGroupNotice", null);
 
 
                     return true;
                     return true;
                 }
                 }

+ 1 - 1
OpenSim/Framework/Util.cs

@@ -2031,7 +2031,7 @@ namespace OpenSim.Framework
         // Maps (ThreadFunc number -> Thread)
         // Maps (ThreadFunc number -> Thread)
         private static ConcurrentDictionary<long, ThreadInfo> activeThreads = new ConcurrentDictionary<long, ThreadInfo>();
         private static ConcurrentDictionary<long, ThreadInfo> activeThreads = new ConcurrentDictionary<long, ThreadInfo>();
 
 
-        private static readonly int THREAD_TIMEOUT = 60 * 1000;
+        private static readonly int THREAD_TIMEOUT = 10 * 60 * 1000;    // 10 minutes
 
 
         /// <summary>
         /// <summary>
         /// Finds threads in the main thread pool that have timed-out, and aborts them.
         /// Finds threads in the main thread pool that have timed-out, and aborts them.

+ 2 - 2
OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs

@@ -963,10 +963,10 @@ namespace OpenSim.Region.CoreModules.Asset
                     case "assets":
                     case "assets":
                         con.Output("Ensuring assets are cached for all scenes.");
                         con.Output("Ensuring assets are cached for all scenes.");
 
 
-                        Util.FireAndForget(delegate {
+                        Util.RunThreadNoTimeout(delegate {
                             int assetReferenceTotal = TouchAllSceneAssets(true);
                             int assetReferenceTotal = TouchAllSceneAssets(true);
                             con.OutputFormat("Completed check with {0} assets.", assetReferenceTotal);
                             con.OutputFormat("Completed check with {0} assets.", assetReferenceTotal);
-                        });
+                        }, "TouchAllSceneAssets", null);
 
 
                         break;
                         break;