aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
diff options
context:
space:
mode:
authorMelanie2012-09-04 22:53:52 +0200
committerMelanie2012-09-04 22:53:52 +0200
commit9ae293881addf98844b8f292298bc0674ebbed0d (patch)
treea3ce8a6bcb133c964f0b115094c1abef1e5c5cc3 /OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
parentMerge branch 'ubitwork' into avination (diff)
downloadopensim-SC-9ae293881addf98844b8f292298bc0674ebbed0d.zip
opensim-SC-9ae293881addf98844b8f292298bc0674ebbed0d.tar.gz
opensim-SC-9ae293881addf98844b8f292298bc0674ebbed0d.tar.bz2
opensim-SC-9ae293881addf98844b8f292298bc0674ebbed0d.tar.xz
Make friend notifies and closing child agents async because both can
block the heartbeat thread if the sim being contacted is unresponsive
Diffstat (limited to '')
-rw-r--r--OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs21
1 files changed, 11 insertions, 10 deletions
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
index e1c2243..508baf7 100644
--- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
@@ -395,17 +395,18 @@ namespace OpenSim.Services.Connectors.Simulation
395 private bool CloseAgent(GridRegion destination, UUID id, bool ChildOnly) 395 private bool CloseAgent(GridRegion destination, UUID id, bool ChildOnly)
396 { 396 {
397// m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: CloseAgent start"); 397// m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: CloseAgent start");
398 Util.FireAndForget(x => {
399 string uri = destination.ServerURI + AgentPath() + id + "/" + destination.RegionID.ToString() + "/";
398 400
399 string uri = destination.ServerURI + AgentPath() + id + "/" + destination.RegionID.ToString() + "/"; 401 try
400 402 {
401 try 403 WebUtil.ServiceOSDRequest(uri, null, "DELETE", 10000, false);
402 { 404 }
403 WebUtil.ServiceOSDRequest(uri, null, "DELETE", 10000, false); 405 catch (Exception e)
404 } 406 {
405 catch (Exception e) 407 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR] CloseAgent failed with exception; {0}",e.ToString());
406 { 408 }
407 m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR] CloseAgent failed with exception; {0}",e.ToString()); 409 });
408 }
409 410
410 return true; 411 return true;
411 } 412 }