From e131e73652cf6ed2407e41c7d83dc67f49ca23ee Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Wed, 29 Jan 2014 16:14:27 +0200 Subject: Run slow operations in a separate thread, instead of using FireAndForget (which has a 1-minute timeout) Resolves http://opensimulator.org/mantis/view.php?id=6945 --- OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs | 2 +- OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/CoreModules/World') diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs index cd95ee9..136a16e 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequest.cs @@ -199,7 +199,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver m_rootScene.AssetService, m_rootScene.UserAccountService, m_rootScene.RegionInfo.ScopeID, options, ReceivedAllAssets); - Util.FireAndForget(o => ar.Execute()); + Util.RunThreadNoTimeout(o => ar.Execute(), "AssetsRequest", null); // CloseArchive() will be called from ReceivedAllAssets() } diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs index 2d0da61..4f428c3 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs @@ -143,7 +143,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver m_requestState = RequestState.Running; m_log.DebugFormat("[ARCHIVER]: AssetsRequest executed looking for {0} possible assets", m_repliesRequired); - + // We can stop here if there are no assets to fetch if (m_repliesRequired == 0) { @@ -226,7 +226,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver finally { if (timedOut) - Util.FireAndForget(PerformAssetsRequestCallback, true); + Util.RunThreadNoTimeout(PerformAssetsRequestCallback, "AssetsRequestCallback", true); } } @@ -295,7 +295,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver // We want to stop using the asset cache thread asap // as we now need to do the work of producing the rest of the archive - Util.FireAndForget(PerformAssetsRequestCallback, false); + Util.RunThreadNoTimeout(PerformAssetsRequestCallback, "AssetsRequestCallback", false); } else { -- cgit v1.1