diff options
author | Robert Adams | 2014-09-05 21:20:02 -0700 |
---|---|---|
committer | Robert Adams | 2014-09-05 21:20:02 -0700 |
commit | e5b269e9a09441814a2849e4411ab5b0e11c46df (patch) | |
tree | 0d25eaf07841eaefc3f9b1de5b434d3cbbac6f73 /OpenSim/Region | |
parent | Merge branch 'master' into bullet-2.82 (diff) | |
parent | For monitoring purposes, start non-timeout tasks (which do not currently use ... (diff) | |
download | opensim-SC-e5b269e9a09441814a2849e4411ab5b0e11c46df.zip opensim-SC-e5b269e9a09441814a2849e4411ab5b0e11c46df.tar.gz opensim-SC-e5b269e9a09441814a2849e4411ab5b0e11c46df.tar.bz2 opensim-SC-e5b269e9a09441814a2849e4411ab5b0e11c46df.tar.xz |
Merge branch 'master' into bullet-2.82
Diffstat (limited to 'OpenSim/Region')
10 files changed, 29 insertions, 23 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 87aa37d..e879e76 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -447,6 +447,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
447 | { | 447 | { |
448 | StartInbound(); | 448 | StartInbound(); |
449 | StartOutbound(); | 449 | StartOutbound(); |
450 | OqrEngine.Start(); | ||
450 | 451 | ||
451 | m_elapsedMSSinceLastStatReport = Environment.TickCount; | 452 | m_elapsedMSSinceLastStatReport = Environment.TickCount; |
452 | } | 453 | } |
@@ -491,6 +492,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
491 | m_log.Info("[LLUDPSERVER]: Shutting down the LLUDP server for " + Scene.Name); | 492 | m_log.Info("[LLUDPSERVER]: Shutting down the LLUDP server for " + Scene.Name); |
492 | base.StopOutbound(); | 493 | base.StopOutbound(); |
493 | base.StopInbound(); | 494 | base.StopInbound(); |
495 | OqrEngine.Stop(); | ||
494 | } | 496 | } |
495 | 497 | ||
496 | protected override bool EnablePools() | 498 | protected override bool EnablePools() |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/OutgoingQueueRefillEngine.cs b/OpenSim/Region/ClientStack/Linden/UDP/OutgoingQueueRefillEngine.cs index 0659d8e..069c9c8 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/OutgoingQueueRefillEngine.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/OutgoingQueueRefillEngine.cs | |||
@@ -92,7 +92,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
92 | "debug lludp oqre", | 92 | "debug lludp oqre", |
93 | "debug lludp oqre <start|stop|status>", | 93 | "debug lludp oqre <start|stop|status>", |
94 | "Start, stop or get status of OutgoingQueueRefillEngine.", | 94 | "Start, stop or get status of OutgoingQueueRefillEngine.", |
95 | "Experimental.", | 95 | "If stopped then refill requests are processed directly via the threadpool.", |
96 | HandleOqreCommand); | 96 | HandleOqreCommand); |
97 | } | 97 | } |
98 | 98 | ||
diff --git a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs index f06d70d..9d6870f 100644 --- a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs +++ b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs | |||
@@ -43,6 +43,7 @@ using Mono.Addins; | |||
43 | using OpenMetaverse; | 43 | using OpenMetaverse; |
44 | using OpenSim.Framework; | 44 | using OpenSim.Framework; |
45 | using OpenSim.Framework.Console; | 45 | using OpenSim.Framework.Console; |
46 | using OpenSim.Framework.Monitoring; | ||
46 | using OpenSim.Region.Framework.Interfaces; | 47 | using OpenSim.Region.Framework.Interfaces; |
47 | using OpenSim.Region.Framework.Scenes; | 48 | using OpenSim.Region.Framework.Scenes; |
48 | using OpenSim.Services.Interfaces; | 49 | using OpenSim.Services.Interfaces; |
@@ -963,7 +964,8 @@ namespace OpenSim.Region.CoreModules.Asset | |||
963 | case "assets": | 964 | case "assets": |
964 | con.Output("Ensuring assets are cached for all scenes."); | 965 | con.Output("Ensuring assets are cached for all scenes."); |
965 | 966 | ||
966 | Util.RunThreadNoTimeout(delegate { | 967 | Watchdog.RunInThread(delegate |
968 | { | ||
967 | int assetReferenceTotal = TouchAllSceneAssets(true); | 969 | int assetReferenceTotal = TouchAllSceneAssets(true); |
968 | con.OutputFormat("Completed check with {0} assets.", assetReferenceTotal); | 970 | con.OutputFormat("Completed check with {0} assets.", assetReferenceTotal); |
969 | }, "TouchAllSceneAssets", null); | 971 | }, "TouchAllSceneAssets", null); |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs index d15703e..a5b5aa2 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | |||
@@ -34,6 +34,7 @@ using System.Xml; | |||
34 | using log4net; | 34 | using log4net; |
35 | using OpenMetaverse; | 35 | using OpenMetaverse; |
36 | using OpenSim.Framework; | 36 | using OpenSim.Framework; |
37 | using OpenSim.Framework.Monitoring; | ||
37 | using OpenSim.Framework.Serialization; | 38 | using OpenSim.Framework.Serialization; |
38 | using OpenSim.Framework.Serialization.External; | 39 | using OpenSim.Framework.Serialization.External; |
39 | using OpenSim.Region.CoreModules.World.Archiver; | 40 | using OpenSim.Region.CoreModules.World.Archiver; |
@@ -356,7 +357,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
356 | m_scene.UserAccountService, m_scene.RegionInfo.ScopeID, | 357 | m_scene.UserAccountService, m_scene.RegionInfo.ScopeID, |
357 | options, ReceivedAllAssets); | 358 | options, ReceivedAllAssets); |
358 | 359 | ||
359 | Util.RunThreadNoTimeout(o => ar.Execute(), "AssetsRequest", null); | 360 | Watchdog.RunInThread(o => ar.Execute(), string.Format("AssetsRequest ({0})", m_scene.Name), null); |
360 | } | 361 | } |
361 | else | 362 | else |
362 | { | 363 | { |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs index f80fab3..470ef02 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs | |||
@@ -33,6 +33,7 @@ using System; | |||
33 | using System.Collections.Generic; | 33 | using System.Collections.Generic; |
34 | using System.Reflection; | 34 | using System.Reflection; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using OpenSim.Framework.Monitoring; | ||
36 | using OpenSim.Data; | 37 | using OpenSim.Data; |
37 | using OpenSim.Server.Base; | 38 | using OpenSim.Server.Base; |
38 | using OpenSim.Region.Framework.Interfaces; | 39 | using OpenSim.Region.Framework.Interfaces; |
@@ -183,12 +184,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
183 | // Protect ourselves against the caller subsequently modifying the items list | 184 | // Protect ourselves against the caller subsequently modifying the items list |
184 | List<InventoryItemBase> items = new List<InventoryItemBase>(invCol.Items); | 185 | List<InventoryItemBase> items = new List<InventoryItemBase>(invCol.Items); |
185 | 186 | ||
186 | Util.RunThreadNoTimeout(delegate | 187 | Watchdog.RunInThread(delegate |
187 | { | 188 | { |
188 | foreach (InventoryItemBase item in items) | 189 | foreach (InventoryItemBase item in items) |
189 | if (!string.IsNullOrEmpty(item.CreatorData)) | 190 | if (!string.IsNullOrEmpty(item.CreatorData)) |
190 | UserManager.AddUser(item.CreatorIdAsUuid, item.CreatorData); | 191 | UserManager.AddUser(item.CreatorIdAsUuid, item.CreatorData); |
191 | }, "GetFolderContent", null); | 192 | }, string.Format("GetFolderContent (user {0}, folder {1})", userID, folderID), null); |
192 | } | 193 | } |
193 | 194 | ||
194 | return invCol; | 195 | return invCol; |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index c8056d4..3e0c9f3 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -36,6 +36,7 @@ using System.Xml; | |||
36 | using log4net; | 36 | using log4net; |
37 | using OpenMetaverse; | 37 | using OpenMetaverse; |
38 | using OpenSim.Framework; | 38 | using OpenSim.Framework; |
39 | using OpenSim.Framework.Monitoring; | ||
39 | using OpenSim.Framework.Serialization; | 40 | using OpenSim.Framework.Serialization; |
40 | using OpenSim.Framework.Serialization.External; | 41 | using OpenSim.Framework.Serialization.External; |
41 | using OpenSim.Region.CoreModules.World.Terrain; | 42 | using OpenSim.Region.CoreModules.World.Terrain; |
@@ -371,7 +372,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
371 | // Start the scripts. We delayed this because we want the OAR to finish loading ASAP, so | 372 | // Start the scripts. We delayed this because we want the OAR to finish loading ASAP, so |
372 | // that users can enter the scene. If we allow the scripts to start in the loop above | 373 | // that users can enter the scene. If we allow the scripts to start in the loop above |
373 | // then they significantly increase the time until the OAR finishes loading. | 374 | // then they significantly increase the time until the OAR finishes loading. |
374 | Util.RunThreadNoTimeout(delegate(object o) | 375 | Watchdog.RunInThread(o => |
375 | { | 376 | { |
376 | Thread.Sleep(15000); | 377 | Thread.Sleep(15000); |
377 | m_log.Info("[ARCHIVER]: Starting scripts in scene objects"); | 378 | m_log.Info("[ARCHIVER]: Starting scripts in scene objects"); |
@@ -386,7 +387,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
386 | 387 | ||
387 | sceneContext.SceneObjects.Clear(); | 388 | sceneContext.SceneObjects.Clear(); |
388 | } | 389 | } |
389 | }, "ReadArchiveStartScripts", null); | 390 | }, string.Format("ReadArchiveStartScripts (request {0})", m_requestId), null); |
390 | 391 | ||
391 | m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive"); | 392 | m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive"); |
392 | 393 | ||
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs index 448147a..803f24e 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs | |||
@@ -36,6 +36,7 @@ using System.Xml; | |||
36 | using log4net; | 36 | using log4net; |
37 | using OpenMetaverse; | 37 | using OpenMetaverse; |
38 | using OpenSim.Framework; | 38 | using OpenSim.Framework; |
39 | using OpenSim.Framework.Monitoring; | ||
39 | using OpenSim.Framework.Serialization; | 40 | using OpenSim.Framework.Serialization; |
40 | using OpenSim.Region.CoreModules.World.Terrain; | 41 | using OpenSim.Region.CoreModules.World.Terrain; |
41 | using OpenSim.Region.Framework.Interfaces; | 42 | using OpenSim.Region.Framework.Interfaces; |
@@ -199,7 +200,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
199 | m_rootScene.AssetService, m_rootScene.UserAccountService, | 200 | m_rootScene.AssetService, m_rootScene.UserAccountService, |
200 | m_rootScene.RegionInfo.ScopeID, options, ReceivedAllAssets); | 201 | m_rootScene.RegionInfo.ScopeID, options, ReceivedAllAssets); |
201 | 202 | ||
202 | Util.RunThreadNoTimeout(o => ar.Execute(), "AssetsRequest", null); | 203 | Watchdog.RunInThread(o => ar.Execute(), "Archive Assets Request", null); |
203 | 204 | ||
204 | // CloseArchive() will be called from ReceivedAllAssets() | 205 | // CloseArchive() will be called from ReceivedAllAssets() |
205 | } | 206 | } |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs index 4f428c3..ec39bc0 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs | |||
@@ -33,6 +33,7 @@ using System.Timers; | |||
33 | using log4net; | 33 | using log4net; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using OpenSim.Framework.Monitoring; | ||
36 | using OpenSim.Framework.Serialization; | 37 | using OpenSim.Framework.Serialization; |
37 | using OpenSim.Framework.Serialization.External; | 38 | using OpenSim.Framework.Serialization.External; |
38 | using OpenSim.Services.Interfaces; | 39 | using OpenSim.Services.Interfaces; |
@@ -226,7 +227,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
226 | finally | 227 | finally |
227 | { | 228 | { |
228 | if (timedOut) | 229 | if (timedOut) |
229 | Util.RunThreadNoTimeout(PerformAssetsRequestCallback, "AssetsRequestCallback", true); | 230 | Watchdog.RunInThread(PerformAssetsRequestCallback, "Archive Assets Request Callback", true); |
230 | } | 231 | } |
231 | } | 232 | } |
232 | 233 | ||
@@ -295,7 +296,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
295 | 296 | ||
296 | // We want to stop using the asset cache thread asap | 297 | // We want to stop using the asset cache thread asap |
297 | // as we now need to do the work of producing the rest of the archive | 298 | // as we now need to do the work of producing the rest of the archive |
298 | Util.RunThreadNoTimeout(PerformAssetsRequestCallback, "AssetsRequestCallback", false); | 299 | Watchdog.RunInThread(PerformAssetsRequestCallback, "Archive Assets Request Callback", false); |
299 | } | 300 | } |
300 | else | 301 | else |
301 | { | 302 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 5f0dbd7..28dbccb 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1623,7 +1623,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
1623 | { | 1623 | { |
1624 | tmpMS = Util.EnvironmentTickCount(); | 1624 | tmpMS = Util.EnvironmentTickCount(); |
1625 | m_cleaningTemps = true; | 1625 | m_cleaningTemps = true; |
1626 | Util.RunThreadNoTimeout(delegate { CleanTempObjects(); m_cleaningTemps = false; }, "CleanTempObjects", null); | 1626 | |
1627 | Watchdog.RunInThread( | ||
1628 | delegate { CleanTempObjects(); m_cleaningTemps = false; }, | ||
1629 | string.Format("CleanTempObjects ({0})", Name), | ||
1630 | null); | ||
1631 | |||
1627 | tempOnRezMS = Util.EnvironmentTickCountSubtract(tmpMS); | 1632 | tempOnRezMS = Util.EnvironmentTickCountSubtract(tmpMS); |
1628 | } | 1633 | } |
1629 | 1634 | ||
@@ -1803,7 +1808,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1803 | if (!m_backingup) | 1808 | if (!m_backingup) |
1804 | { | 1809 | { |
1805 | m_backingup = true; | 1810 | m_backingup = true; |
1806 | Util.RunThreadNoTimeout(BackupWaitCallback, "BackupWaitCallback", null); | 1811 | Watchdog.RunInThread(o => Backup(false), string.Format("BackupWaitCallback ({0})", Name), null); |
1807 | } | 1812 | } |
1808 | } | 1813 | } |
1809 | 1814 | ||
@@ -1814,14 +1819,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1814 | { | 1819 | { |
1815 | m_eventManager.TriggerOnFrame(); | 1820 | m_eventManager.TriggerOnFrame(); |
1816 | } | 1821 | } |
1817 | |||
1818 | /// <summary> | ||
1819 | /// Wrapper for Backup() that can be called with Util.RunThreadNoTimeout() | ||
1820 | /// </summary> | ||
1821 | private void BackupWaitCallback(object o) | ||
1822 | { | ||
1823 | Backup(false); | ||
1824 | } | ||
1825 | 1822 | ||
1826 | /// <summary> | 1823 | /// <summary> |
1827 | /// Backup the scene. | 1824 | /// Backup the scene. |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 3c37de8..59b521d 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -37,6 +37,7 @@ using log4net; | |||
37 | using Nini.Config; | 37 | using Nini.Config; |
38 | using OpenSim.Framework; | 38 | using OpenSim.Framework; |
39 | using OpenSim.Framework.Client; | 39 | using OpenSim.Framework.Client; |
40 | using OpenSim.Framework.Monitoring; | ||
40 | using OpenSim.Region.Framework.Interfaces; | 41 | using OpenSim.Region.Framework.Interfaces; |
41 | using OpenSim.Region.Framework.Scenes.Animation; | 42 | using OpenSim.Region.Framework.Scenes.Animation; |
42 | using OpenSim.Region.Framework.Scenes.Types; | 43 | using OpenSim.Region.Framework.Scenes.Types; |
@@ -3362,7 +3363,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3362 | SentInitialDataToClient = true; | 3363 | SentInitialDataToClient = true; |
3363 | 3364 | ||
3364 | // Send all scene object to the new client | 3365 | // Send all scene object to the new client |
3365 | Util.RunThreadNoTimeout(delegate | 3366 | Watchdog.RunInThread(delegate |
3366 | { | 3367 | { |
3367 | // m_log.DebugFormat( | 3368 | // m_log.DebugFormat( |
3368 | // "[SCENE PRESENCE]: Sending initial data to {0} agent {1} in {2}, tp flags {3}", | 3369 | // "[SCENE PRESENCE]: Sending initial data to {0} agent {1} in {2}, tp flags {3}", |
@@ -3380,8 +3381,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3380 | if (e != null && e is SceneObjectGroup) | 3381 | if (e != null && e is SceneObjectGroup) |
3381 | ((SceneObjectGroup)e).SendFullUpdateToClient(ControllingClient); | 3382 | ((SceneObjectGroup)e).SendFullUpdateToClient(ControllingClient); |
3382 | } | 3383 | } |
3383 | 3384 | }, string.Format("SendInitialDataToClient ({0} in {1})", Name, Scene.Name), null); | |
3384 | }, "SendInitialDataToClient", null); | ||
3385 | } | 3385 | } |
3386 | 3386 | ||
3387 | /// <summary> | 3387 | /// <summary> |