mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 18:25:33 +08:00
Turns out that it's a bad idea to let Agent position updates linger for a long time on certain versions of mono. It's better to abort them if they take too long. So timeout is now an argument. Currently: 20secs for CreateAgent, 100secs for UpdateAgent (fat), 10 secs for UpdateAgent (Position); all of these divided by 4, for ReadWrite, as Mic had before.
This commit is contained in:
@@ -102,7 +102,7 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||
args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString());
|
||||
args["teleport_flags"] = OSD.FromString(flags.ToString());
|
||||
|
||||
OSDMap result = WebUtil.PostToService(uri,args);
|
||||
OSDMap result = WebUtil.PostToService(uri, args, 20000);
|
||||
if (result["Success"].AsBoolean())
|
||||
return true;
|
||||
|
||||
@@ -126,7 +126,7 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||
/// </summary>
|
||||
public bool UpdateAgent(GridRegion destination, AgentData data)
|
||||
{
|
||||
return UpdateAgent(destination, (IAgentData)data);
|
||||
return UpdateAgent(destination, (IAgentData)data, 100000); // yes, 100 seconds
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -181,7 +181,7 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||
}
|
||||
}
|
||||
|
||||
UpdateAgent(destination,(IAgentData)pos);
|
||||
UpdateAgent(destination, (IAgentData)pos, 10000);
|
||||
}
|
||||
|
||||
// unreachable
|
||||
@@ -191,7 +191,7 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||
/// <summary>
|
||||
/// This is the worker function to send AgentData to a neighbor region
|
||||
/// </summary>
|
||||
private bool UpdateAgent(GridRegion destination, IAgentData cAgentData)
|
||||
private bool UpdateAgent(GridRegion destination, IAgentData cAgentData, int timeout)
|
||||
{
|
||||
// m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: UpdateAgent start");
|
||||
|
||||
@@ -207,7 +207,7 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||
args["destination_name"] = OSD.FromString(destination.RegionName);
|
||||
args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString());
|
||||
|
||||
OSDMap result = WebUtil.PutToService(uri,args);
|
||||
OSDMap result = WebUtil.PutToService(uri, args, timeout);
|
||||
return result["Success"].AsBoolean();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -233,7 +233,7 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||
|
||||
try
|
||||
{
|
||||
OSDMap result = WebUtil.GetFromService(uri);
|
||||
OSDMap result = WebUtil.GetFromService(uri, 10000);
|
||||
if (result["Success"].AsBoolean())
|
||||
{
|
||||
// OSDMap args = Util.GetOSDMap(result["_RawResult"].AsString());
|
||||
@@ -392,7 +392,7 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||
args["destination_name"] = OSD.FromString(destination.RegionName);
|
||||
args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString());
|
||||
|
||||
WebUtil.PostToService(uri, args);
|
||||
WebUtil.PostToService(uri, args, 40000);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user