First change in Vivox for ages! -- added a lock to serialize calls to vivox servers. This may ameliorate things when lots of avies arrive in a sim at about the same time. Turns out that there are 4 http requests per avie to Vivox.
parent
10e4fb2ce2
commit
7e1c7f54c7
|
@ -117,6 +117,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
|
|||
|
||||
private IConfig m_config;
|
||||
|
||||
private object m_Lock;
|
||||
|
||||
public void Initialise(IConfigSource config)
|
||||
{
|
||||
|
||||
|
@ -128,6 +130,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
|
|||
if (!m_config.GetBoolean("enabled", false))
|
||||
return;
|
||||
|
||||
m_Lock = new object();
|
||||
|
||||
try
|
||||
{
|
||||
// retrieve configuration variables
|
||||
|
@ -1111,6 +1115,12 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
|
|||
|
||||
doc = new XmlDocument();
|
||||
|
||||
// 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)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Otherwise prepare the request
|
||||
|
@ -1131,6 +1141,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
|
|||
{
|
||||
m_log.ErrorFormat("[VivoxVoice] Error in admin call : {0}", e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
// If we're debugging server responses, dump the whole
|
||||
// load now
|
||||
|
|
Loading…
Reference in New Issue