diff options
author | UbitUmarov | 2017-05-23 07:35:02 +0100 |
---|---|---|
committer | UbitUmarov | 2017-05-23 07:35:02 +0100 |
commit | c0bfaac0ac6873720b7c3721436ca54e93d5072c (patch) | |
tree | 62f6b02569ba6dd968d76ad9bf2aa6ccf839d588 /OpenSim/Region | |
parent | reenqueue poll events while conn is open, and not expired (diff) | |
parent | dont log timeouts on stopped threads (diff) | |
download | opensim-SC-c0bfaac0ac6873720b7c3721436ca54e93d5072c.zip opensim-SC-c0bfaac0ac6873720b7c3721436ca54e93d5072c.tar.gz opensim-SC-c0bfaac0ac6873720b7c3721436ca54e93d5072c.tar.bz2 opensim-SC-c0bfaac0ac6873720b7c3721436ca54e93d5072c.tar.xz |
merge master
Diffstat (limited to '')
12 files changed, 73 insertions, 64 deletions
diff --git a/OpenSim/Region/Application/Application.cs b/OpenSim/Region/Application/Application.cs index bc6d7b3..4bd2c28 100644 --- a/OpenSim/Region/Application/Application.cs +++ b/OpenSim/Region/Application/Application.cs | |||
@@ -77,7 +77,11 @@ namespace OpenSim | |||
77 | if(Util.IsWindows()) | 77 | if(Util.IsWindows()) |
78 | ServicePointManager.DefaultConnectionLimit = 32; | 78 | ServicePointManager.DefaultConnectionLimit = 32; |
79 | else | 79 | else |
80 | { | ||
80 | ServicePointManager.DefaultConnectionLimit = 12; | 81 | ServicePointManager.DefaultConnectionLimit = 12; |
82 | try { ServicePointManager.DnsRefreshTimeout = 120000; } // just is case crazy some mono decides to have it infinity | ||
83 | catch { } | ||
84 | } | ||
81 | 85 | ||
82 | ServicePointManager.Expect100Continue = false; | 86 | ServicePointManager.Expect100Continue = false; |
83 | ServicePointManager.UseNagleAlgorithm = false; | 87 | ServicePointManager.UseNagleAlgorithm = false; |
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index f9f103a..524f2be 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -504,7 +504,8 @@ namespace OpenSim | |||
504 | private void WatchdogTimeoutHandler(Watchdog.ThreadWatchdogInfo twi) | 504 | private void WatchdogTimeoutHandler(Watchdog.ThreadWatchdogInfo twi) |
505 | { | 505 | { |
506 | int now = Environment.TickCount & Int32.MaxValue; | 506 | int now = Environment.TickCount & Int32.MaxValue; |
507 | 507 | if(twi.Thread.ThreadState == System.Threading.ThreadState.Stopped) | |
508 | return; | ||
508 | m_log.ErrorFormat( | 509 | m_log.ErrorFormat( |
509 | "[WATCHDOG]: Timeout detected for thread \"{0}\". ThreadState={1}. Last tick was {2}ms ago. {3}", | 510 | "[WATCHDOG]: Timeout detected for thread \"{0}\". ThreadState={1}. Last tick was {2}ms ago. {3}", |
510 | twi.Thread.Name, | 511 | twi.Thread.Name, |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 298c933..f658a70 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -62,7 +62,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
62 | /// Handles new client connections | 62 | /// Handles new client connections |
63 | /// Constructor takes a single Packet and authenticates everything | 63 | /// Constructor takes a single Packet and authenticates everything |
64 | /// </summary> | 64 | /// </summary> |
65 | public class LLClientView : IClientAPI, IClientCore, IClientIM, IClientChat, IClientInventory, IStatsCollector | 65 | public class LLClientView : IClientAPI, IClientCore, IClientIM, IClientChat, IClientInventory, IStatsCollector, IClientIPEndpoint |
66 | { | 66 | { |
67 | /// <value> | 67 | /// <value> |
68 | /// Debug packet level. See OpenSim.RegisterConsoleCommands() for more details. | 68 | /// Debug packet level. See OpenSim.RegisterConsoleCommands() for more details. |
diff --git a/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs b/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs index 8502006..b4c68e2 100644 --- a/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs +++ b/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs | |||
@@ -53,9 +53,9 @@ namespace OpenSim.Region.CoreModules.Agent.IPBan | |||
53 | if (bans.Count > 0) | 53 | if (bans.Count > 0) |
54 | { | 54 | { |
55 | IClientIPEndpoint ipEndpoint; | 55 | IClientIPEndpoint ipEndpoint; |
56 | if (client.TryGet(out ipEndpoint)) | 56 | if (client.TryGet(out ipEndpoint) && ipEndpoint.RemoteEndPoint != null) |
57 | { | 57 | { |
58 | IPAddress end = ipEndpoint.EndPoint; | 58 | IPAddress end = ipEndpoint.RemoteEndPoint.Address; |
59 | 59 | ||
60 | try | 60 | try |
61 | { | 61 | { |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 87b76dc..4b846f5 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -813,8 +813,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
813 | agentCircuit.Id0 = currentAgentCircuit.Id0; | 813 | agentCircuit.Id0 = currentAgentCircuit.Id0; |
814 | } | 814 | } |
815 | 815 | ||
816 | IClientIPEndpoint ipepClient; | ||
817 | |||
818 | uint newRegionX, newRegionY, oldRegionX, oldRegionY; | 816 | uint newRegionX, newRegionY, oldRegionX, oldRegionY; |
819 | Util.RegionHandleToRegionLoc(destinationHandle, out newRegionX, out newRegionY); | 817 | Util.RegionHandleToRegionLoc(destinationHandle, out newRegionX, out newRegionY); |
820 | Util.RegionHandleToRegionLoc(sourceRegion.RegionHandle, out oldRegionX, out oldRegionY); | 818 | Util.RegionHandleToRegionLoc(sourceRegion.RegionHandle, out oldRegionX, out oldRegionY); |
@@ -833,13 +831,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
833 | finalDestination.RegionName, newRegionX, newRegionY,newSizeX, newSizeY, sp.Name, Scene.Name); | 831 | finalDestination.RegionName, newRegionX, newRegionY,newSizeX, newSizeY, sp.Name, Scene.Name); |
834 | 832 | ||
835 | //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Creating agent..."); | 833 | //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Creating agent..."); |
836 | #region IP Translation for NAT | ||
837 | // Uses ipepClient above | ||
838 | if (sp.ClientView.TryGet(out ipepClient)) | ||
839 | { | ||
840 | endPoint.Address = NetworkUtil.GetIPFor(ipepClient.EndPoint, endPoint.Address); | ||
841 | } | ||
842 | #endregion | ||
843 | agentCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath(); | 834 | agentCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath(); |
844 | } | 835 | } |
845 | else | 836 | else |
@@ -952,7 +943,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
952 | agent.Position = agentCircuit.startpos; | 943 | agent.Position = agentCircuit.startpos; |
953 | SetCallbackURL(agent, sp.Scene.RegionInfo); | 944 | SetCallbackURL(agent, sp.Scene.RegionInfo); |
954 | 945 | ||
955 | |||
956 | // We will check for an abort before UpdateAgent since UpdateAgent will require an active viewer to | 946 | // We will check for an abort before UpdateAgent since UpdateAgent will require an active viewer to |
957 | // establish th econnection to the destination which makes it return true. | 947 | // establish th econnection to the destination which makes it return true. |
958 | if (m_entityTransferStateMachine.GetAgentTransferState(sp.UUID) == AgentTransferState.Aborting) | 948 | if (m_entityTransferStateMachine.GetAgentTransferState(sp.UUID) == AgentTransferState.Aborting) |
@@ -1745,11 +1735,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1745 | 1735 | ||
1746 | if (m_eqModule != null) | 1736 | if (m_eqModule != null) |
1747 | { | 1737 | { |
1748 | #region IP Translation for NAT | ||
1749 | IClientIPEndpoint ipepClient; | ||
1750 | if (agent.ClientView.TryGet(out ipepClient)) | ||
1751 | endPoint.Address = NetworkUtil.GetIPFor(ipepClient.EndPoint, endPoint.Address); | ||
1752 | |||
1753 | m_log.DebugFormat("{0} {1} is sending {2} EnableSimulator for neighbour region {3}(loc=<{4},{5}>,siz=<{6},{7}>) " + | 1738 | m_log.DebugFormat("{0} {1} is sending {2} EnableSimulator for neighbour region {3}(loc=<{4},{5}>,siz=<{6},{7}>) " + |
1754 | "and EstablishAgentCommunication with seed cap {8}", LogHeader, | 1739 | "and EstablishAgentCommunication with seed cap {8}", LogHeader, |
1755 | source.RegionName, agent.Name, | 1740 | source.RegionName, agent.Name, |
@@ -2281,6 +2266,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
2281 | } | 2266 | } |
2282 | 2267 | ||
2283 | #endregion // NotFoundLocationCache class | 2268 | #endregion // NotFoundLocationCache class |
2269 | #region getregions | ||
2284 | private NotFoundLocationCache m_notFoundLocationCache = new NotFoundLocationCache(); | 2270 | private NotFoundLocationCache m_notFoundLocationCache = new NotFoundLocationCache(); |
2285 | 2271 | ||
2286 | protected GridRegion GetRegionContainingWorldLocation(IGridService pGridService, UUID pScopeID, double px, double py) | 2272 | protected GridRegion GetRegionContainingWorldLocation(IGridService pGridService, UUID pScopeID, double px, double py) |
@@ -2398,17 +2384,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
2398 | 2384 | ||
2399 | if (m_eqModule != null) | 2385 | if (m_eqModule != null) |
2400 | { | 2386 | { |
2401 | #region IP Translation for NAT | ||
2402 | if(sp == null || sp.IsDeleted || sp.ClientView == null) // something bad already happened | 2387 | if(sp == null || sp.IsDeleted || sp.ClientView == null) // something bad already happened |
2403 | return; | 2388 | return; |
2404 | 2389 | ||
2405 | IClientIPEndpoint ipepClient; | ||
2406 | if (sp.ClientView.TryGet(out ipepClient)) | ||
2407 | { | ||
2408 | endPoint.Address = NetworkUtil.GetIPFor(ipepClient.EndPoint, endPoint.Address); | ||
2409 | } | ||
2410 | #endregion | ||
2411 | |||
2412 | m_log.DebugFormat("{0} {1} is sending {2} EnableSimulator for neighbour region {3}(loc=<{4},{5}>,siz=<{6},{7}>) " + | 2390 | m_log.DebugFormat("{0} {1} is sending {2} EnableSimulator for neighbour region {3}(loc=<{4},{5}>,siz=<{6},{7}>) " + |
2413 | "and EstablishAgentCommunication with seed cap {8}", LogHeader, | 2391 | "and EstablishAgentCommunication with seed cap {8}", LogHeader, |
2414 | scene.RegionInfo.RegionName, sp.Name, | 2392 | scene.RegionInfo.RegionName, sp.Name, |
diff --git a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs index 5d66d34..8c44ee2 100644 --- a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs +++ b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs | |||
@@ -106,6 +106,8 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
106 | if (!m_Enabled) | 106 | if (!m_Enabled) |
107 | return; | 107 | return; |
108 | 108 | ||
109 | base.RemoveRegion(scene); | ||
110 | |||
109 | scene.EventManager.OnClientClosed -= EventManager_OnClientClosed; | 111 | scene.EventManager.OnClientClosed -= EventManager_OnClientClosed; |
110 | } | 112 | } |
111 | 113 | ||
diff --git a/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs b/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs index ae5e175..57dc556 100644 --- a/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs +++ b/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs | |||
@@ -415,6 +415,7 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest | |||
415 | 415 | ||
416 | public void Close() | 416 | public void Close() |
417 | { | 417 | { |
418 | ThreadPool.Shutdown(); | ||
418 | } | 419 | } |
419 | 420 | ||
420 | public string Name | 421 | public string Name |
@@ -538,6 +539,7 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest | |||
538 | { | 539 | { |
539 | Request = (HttpWebRequest)WebRequest.Create(Url); | 540 | Request = (HttpWebRequest)WebRequest.Create(Url); |
540 | Request.AllowAutoRedirect = false; | 541 | Request.AllowAutoRedirect = false; |
542 | Request.KeepAlive = false; | ||
541 | 543 | ||
542 | //This works around some buggy HTTP Servers like Lighttpd | 544 | //This works around some buggy HTTP Servers like Lighttpd |
543 | Request.ServicePoint.Expect100Continue = false; | 545 | Request.ServicePoint.Expect100Continue = false; |
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index 5dcf326..00c8279 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | |||
@@ -215,6 +215,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
215 | m_scene.EventManager.OnNewClient -= OnNewClient; | 215 | m_scene.EventManager.OnNewClient -= OnNewClient; |
216 | m_scene.EventManager.OnRegisterCaps -= OnRegisterCaps; | 216 | m_scene.EventManager.OnRegisterCaps -= OnRegisterCaps; |
217 | 217 | ||
218 | m_scene.UnregisterModuleInterface<IWorldMapModule>(this); | ||
219 | |||
218 | string regionimage = "regionImage" + m_scene.RegionInfo.RegionID.ToString(); | 220 | string regionimage = "regionImage" + m_scene.RegionInfo.RegionID.ToString(); |
219 | regionimage = regionimage.Replace("-", ""); | 221 | regionimage = regionimage.Replace("-", ""); |
220 | MainServer.Instance.RemoveLLSDHandler("/MAP/MapItems/" + m_scene.RegionInfo.RegionHandle.ToString(), | 222 | MainServer.Instance.RemoveLLSDHandler("/MAP/MapItems/" + m_scene.RegionInfo.RegionHandle.ToString(), |
@@ -1148,7 +1150,12 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
1148 | List<MapBlockRequestData> thisRunData = new List<MapBlockRequestData>(); | 1150 | List<MapBlockRequestData> thisRunData = new List<MapBlockRequestData>(); |
1149 | while (true) | 1151 | while (true) |
1150 | { | 1152 | { |
1151 | m_mapBlockRequestEvent.WaitOne(); | 1153 | while(!m_mapBlockRequestEvent.WaitOne(4900)) |
1154 | { | ||
1155 | if(m_scene == null) | ||
1156 | return; | ||
1157 | } | ||
1158 | |||
1152 | lock (m_mapBlockRequestEvent) | 1159 | lock (m_mapBlockRequestEvent) |
1153 | { | 1160 | { |
1154 | int total = 0; | 1161 | int total = 0; |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 474378d..55ccb0a 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -4687,7 +4687,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
4687 | cAgent.agentCOF = COF; | 4687 | cAgent.agentCOF = COF; |
4688 | cAgent.ActiveGroupID = ControllingClient.ActiveGroupId; | 4688 | cAgent.ActiveGroupID = ControllingClient.ActiveGroupId; |
4689 | cAgent.ActiveGroupName = ControllingClient.ActiveGroupName; | 4689 | cAgent.ActiveGroupName = ControllingClient.ActiveGroupName; |
4690 | cAgent.ActiveGroupTitle = Grouptitle; | 4690 | if(Grouptitle == null) |
4691 | cAgent.ActiveGroupTitle = String.Empty; | ||
4692 | else | ||
4693 | cAgent.ActiveGroupTitle = Grouptitle; | ||
4691 | } | 4694 | } |
4692 | } | 4695 | } |
4693 | 4696 | ||
diff --git a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs index 93406cb..5a9a5a0 100644 --- a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs +++ b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs | |||
@@ -550,7 +550,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
550 | /// </summary> | 550 | /// </summary> |
551 | private void RecordMaterialAssetUuids(AssetBase materialAsset) | 551 | private void RecordMaterialAssetUuids(AssetBase materialAsset) |
552 | { | 552 | { |
553 | OSDMap mat = (OSDMap)OSDParser.DeserializeLLSDXml(materialAsset.Data); | 553 | OSDMap mat; |
554 | try | ||
555 | { | ||
556 | mat = (OSDMap)OSDParser.DeserializeLLSDXml(materialAsset.Data); | ||
557 | } | ||
558 | catch (Exception e) | ||
559 | { | ||
560 | m_log.WarnFormat("[Materials]: cannot decode material asset {0}: {1}", materialAsset.ID, e.Message); | ||
561 | return; | ||
562 | } | ||
554 | 563 | ||
555 | UUID normMap = mat["NormMap"].AsUUID(); | 564 | UUID normMap = mat["NormMap"].AsUUID(); |
556 | if (normMap != UUID.Zero) | 565 | if (normMap != UUID.Zero) |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs index 6a39bb9..eb6455a 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs | |||
@@ -51,7 +51,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
51 | 51 | ||
52 | private static Thread cmdHandlerThread; | 52 | private static Thread cmdHandlerThread; |
53 | private static int cmdHandlerThreadCycleSleepms; | 53 | private static int cmdHandlerThreadCycleSleepms; |
54 | 54 | private static int numInstances; | |
55 | /// <summary> | 55 | /// <summary> |
56 | /// Lock for reading/writing static components of AsyncCommandManager. | 56 | /// Lock for reading/writing static components of AsyncCommandManager. |
57 | /// </summary> | 57 | /// </summary> |
@@ -172,18 +172,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
172 | if (!m_XmlRequest.ContainsKey(m_ScriptEngine)) | 172 | if (!m_XmlRequest.ContainsKey(m_ScriptEngine)) |
173 | m_XmlRequest[m_ScriptEngine] = new XmlRequest(this); | 173 | m_XmlRequest[m_ScriptEngine] = new XmlRequest(this); |
174 | 174 | ||
175 | StartThread(); | 175 | numInstances++; |
176 | } | 176 | if (cmdHandlerThread == null) |
177 | } | 177 | { |
178 | 178 | cmdHandlerThread = WorkManager.StartThread( | |
179 | private static void StartThread() | ||
180 | { | ||
181 | if (cmdHandlerThread == null) | ||
182 | { | ||
183 | // Start the thread that will be doing the work | ||
184 | cmdHandlerThread | ||
185 | = WorkManager.StartThread( | ||
186 | CmdHandlerThreadLoop, "AsyncLSLCmdHandlerThread", ThreadPriority.Normal, true, true); | 179 | CmdHandlerThreadLoop, "AsyncLSLCmdHandlerThread", ThreadPriority.Normal, true, true); |
180 | } | ||
187 | } | 181 | } |
188 | } | 182 | } |
189 | 183 | ||
@@ -197,20 +191,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
197 | ~AsyncCommandManager() | 191 | ~AsyncCommandManager() |
198 | { | 192 | { |
199 | // Shut down thread | 193 | // Shut down thread |
200 | // try | 194 | try |
201 | // { | 195 | { |
202 | // if (cmdHandlerThread != null) | 196 | lock (staticLock) |
203 | // { | 197 | { |
204 | // if (cmdHandlerThread.IsAlive == true) | 198 | numInstances--; |
205 | // { | 199 | if(numInstances > 0) |
206 | // cmdHandlerThread.Abort(); | 200 | return; |
207 | // //cmdHandlerThread.Join(); | 201 | if (cmdHandlerThread != null) |
208 | // } | 202 | { |
209 | // } | 203 | if (cmdHandlerThread.IsAlive == true) |
210 | // } | 204 | { |
211 | // catch | 205 | cmdHandlerThread.Abort(); |
212 | // { | 206 | //cmdHandlerThread.Join(); |
213 | // } | 207 | cmdHandlerThread = null; |
208 | } | ||
209 | } | ||
210 | } | ||
211 | } | ||
212 | catch | ||
213 | { | ||
214 | } | ||
214 | } | 215 | } |
215 | 216 | ||
216 | /// <summary> | 217 | /// <summary> |
@@ -240,24 +241,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
240 | lock (staticLock) | 241 | lock (staticLock) |
241 | { | 242 | { |
242 | // Check HttpRequests | 243 | // Check HttpRequests |
243 | m_HttpRequest[m_ScriptEngines[0]].CheckHttpRequests(); | 244 | try { m_HttpRequest[m_ScriptEngines[0]].CheckHttpRequests(); } catch {} |
244 | 245 | ||
245 | // Check XMLRPCRequests | 246 | // Check XMLRPCRequests |
246 | m_XmlRequest[m_ScriptEngines[0]].CheckXMLRPCRequests(); | 247 | try { m_XmlRequest[m_ScriptEngines[0]].CheckXMLRPCRequests(); } catch {} |
247 | 248 | ||
248 | foreach (IScriptEngine s in m_ScriptEngines) | 249 | foreach (IScriptEngine s in m_ScriptEngines) |
249 | { | 250 | { |
250 | // Check Listeners | 251 | // Check Listeners |
251 | m_Listener[s].CheckListeners(); | 252 | try { m_Listener[s].CheckListeners(); } catch {} |
253 | |||
252 | 254 | ||
253 | // Check timers | 255 | // Check timers |
254 | m_Timer[s].CheckTimerEvents(); | 256 | try { m_Timer[s].CheckTimerEvents(); } catch {} |
255 | 257 | ||
256 | // Check Sensors | 258 | // Check Sensors |
257 | m_SensorRepeat[s].CheckSenseRepeaterEvents(); | 259 | try { m_SensorRepeat[s].CheckSenseRepeaterEvents(); } catch {} |
258 | 260 | ||
259 | // Check dataserver | 261 | // Check dataserver |
260 | m_Dataserver[s].ExpireRequests(); | 262 | try { m_Dataserver[s].ExpireRequests(); } catch {} |
261 | } | 263 | } |
262 | } | 264 | } |
263 | } | 265 | } |
@@ -387,8 +389,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
387 | } | 389 | } |
388 | } | 390 | } |
389 | 391 | ||
390 | |||
391 | |||
392 | public static Object[] GetSerializationData(IScriptEngine engine, UUID itemID) | 392 | public static Object[] GetSerializationData(IScriptEngine engine, UUID itemID) |
393 | { | 393 | { |
394 | List<Object> data = new List<Object>(); | 394 | List<Object> data = new List<Object>(); |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 0ccc683..2e39033 100755 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -827,6 +827,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
827 | if (m_ScriptEngines.Contains(this)) | 827 | if (m_ScriptEngines.Contains(this)) |
828 | m_ScriptEngines.Remove(this); | 828 | m_ScriptEngines.Remove(this); |
829 | } | 829 | } |
830 | |||
831 | lock(m_Scripts) | ||
832 | m_ThreadPool.Shutdown(); | ||
830 | } | 833 | } |
831 | 834 | ||
832 | public object DoBackup(object o) | 835 | public object DoBackup(object o) |