Merge branch 'master' of ssh://opensimulator.org/var/git/opensim

cpu-performance
Justin Clark-Casey (justincc) 2013-05-29 22:40:51 +01:00
commit f9ee9efb97
2 changed files with 27 additions and 14 deletions

View File

@ -1348,7 +1348,9 @@ namespace OpenSim.Region.Framework.Scenes
// Create child agents in neighbouring regions // Create child agents in neighbouring regions
if (openChildAgents && !IsChildAgent) if (openChildAgents && !IsChildAgent)
{ {
// Remember in HandleUseCircuitCode, we delayed this to here
SendInitialDataToMe(); SendInitialDataToMe();
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>(); IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
if (m_agentTransfer != null) if (m_agentTransfer != null)
Util.FireAndForget(delegate { m_agentTransfer.EnableChildAgents(this); }); Util.FireAndForget(delegate { m_agentTransfer.EnableChildAgents(this); });

View File

@ -117,6 +117,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
private IConfig m_config; private IConfig m_config;
private object m_Lock;
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {
@ -128,6 +130,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
if (!m_config.GetBoolean("enabled", false)) if (!m_config.GetBoolean("enabled", false))
return; return;
m_Lock = new object();
try try
{ {
// retrieve configuration variables // retrieve configuration variables
@ -1111,25 +1115,32 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
doc = new XmlDocument(); doc = new XmlDocument();
try // Let's serialize all calls to Vivox. Most of these are driven by
// the clients (CAPs), when the user arrives at the region. We don't
// want to issue many simultaneous http requests to Vivox, because mono
// doesn't like that
lock (m_Lock)
{ {
// Otherwise prepare the request try
m_log.DebugFormat("[VivoxVoice] Sending request <{0}>", requrl); {
// Otherwise prepare the request
m_log.DebugFormat("[VivoxVoice] Sending request <{0}>", requrl);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(requrl); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(requrl);
// We are sending just parameters, no content // We are sending just parameters, no content
req.ContentLength = 0; req.ContentLength = 0;
// Send request and retrieve the response // Send request and retrieve the response
using (HttpWebResponse rsp = (HttpWebResponse)req.GetResponse()) using (HttpWebResponse rsp = (HttpWebResponse)req.GetResponse())
using (Stream s = rsp.GetResponseStream()) using (Stream s = rsp.GetResponseStream())
using (XmlTextReader rdr = new XmlTextReader(s)) using (XmlTextReader rdr = new XmlTextReader(s))
doc.Load(rdr); doc.Load(rdr);
} }
catch (Exception e) catch (Exception e)
{ {
m_log.ErrorFormat("[VivoxVoice] Error in admin call : {0}", e.Message); m_log.ErrorFormat("[VivoxVoice] Error in admin call : {0}", e.Message);
}
} }
// If we're debugging server responses, dump the whole // If we're debugging server responses, dump the whole