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

prioritization
Justin Clark-Casey (justincc) 2009-10-05 20:20:00 +01:00
commit 0f93ea5d95
4 changed files with 36 additions and 17 deletions

View File

@ -88,7 +88,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
J2KImage imgrequest; J2KImage imgrequest;
// Do a linear search for this texture download // Do a linear search for this texture download
lock (m_priorityQueue) lock (m_syncRoot)
m_priorityQueue.Find(delegate(J2KImage img) { return img.TextureID == newRequest.RequestedAssetID; }, out imgrequest); m_priorityQueue.Find(delegate(J2KImage img) { return img.TextureID == newRequest.RequestedAssetID; }, out imgrequest);
if (imgrequest != null) if (imgrequest != null)
@ -99,7 +99,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
try try
{ {
lock (m_priorityQueue) lock (m_syncRoot)
m_priorityQueue.Delete(imgrequest.PriorityQueueHandle); m_priorityQueue.Delete(imgrequest.PriorityQueueHandle);
} }
catch (Exception) { } catch (Exception) { }
@ -211,7 +211,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{ {
J2KImage image = null; J2KImage image = null;
lock (m_priorityQueue) lock (m_syncRoot)
{ {
if (m_priorityQueue.Count > 0) if (m_priorityQueue.Count > 0)
@ -230,23 +230,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{ {
image.PriorityQueueHandle = null; image.PriorityQueueHandle = null;
lock (m_priorityQueue) lock (m_syncRoot)
m_priorityQueue.Add(ref image.PriorityQueueHandle, image); try
{
m_priorityQueue.Add(ref image.PriorityQueueHandle, image);
}
catch (Exception) { }
} }
void RemoveImageFromQueue(J2KImage image) void RemoveImageFromQueue(J2KImage image)
{ {
try lock (m_syncRoot)
{ try
lock (m_priorityQueue) {
m_priorityQueue.Delete(image.PriorityQueueHandle); m_priorityQueue.Delete(image.PriorityQueueHandle);
} }
catch (Exception) { } catch (Exception) { }
} }
void UpdateImageInQueue(J2KImage image) void UpdateImageInQueue(J2KImage image)
{ {
lock (m_priorityQueue) lock (m_syncRoot)
{ {
try { m_priorityQueue.Replace(image.PriorityQueueHandle, image); } try { m_priorityQueue.Replace(image.PriorityQueueHandle, image); }
catch (Exception) catch (Exception)

View File

@ -260,7 +260,7 @@ namespace OpenSim.Server.Base
public static Dictionary<string, object> ParseXmlResponse(string data) public static Dictionary<string, object> ParseXmlResponse(string data)
{ {
//m_log.DebugFormat("[XXX]: received xml string: {0}", data); m_log.DebugFormat("[XXX]: received xml string: {0}", data);
Dictionary<string, object> ret = new Dictionary<string, object>(); Dictionary<string, object> ret = new Dictionary<string, object>();

View File

@ -137,11 +137,21 @@ namespace OpenSim.Server.Handlers.Grid
} }
Dictionary<string, object> rinfoData = new Dictionary<string, object>(); Dictionary<string, object> rinfoData = new Dictionary<string, object>();
foreach (KeyValuePair<string, string> kvp in request) GridRegion rinfo = null;
rinfoData[kvp.Key] = kvp.Value; try
GridRegion rinfo = new GridRegion(rinfoData); {
foreach (KeyValuePair<string, string> kvp in request)
rinfoData[kvp.Key] = kvp.Value;
rinfo = new GridRegion(rinfoData);
}
catch (Exception e)
{
m_log.DebugFormat("[GRID HANDLER]: exception unpacking region data: {0}", e);
}
bool result = m_GridService.RegisterRegion(scopeID, rinfo); bool result = false;
if (rinfo != null)
result = m_GridService.RegisterRegion(scopeID, rinfo);
if (result) if (result)
return SuccessResult(); return SuccessResult();

View File

@ -109,8 +109,13 @@ namespace OpenSim.Services.Connectors
{ {
Dictionary<string, object> replyData = ServerUtils.ParseXmlResponse(reply); Dictionary<string, object> replyData = ServerUtils.ParseXmlResponse(reply);
if ((replyData["Result"] != null) && (replyData["Result"].ToString().ToLower() == "success")) if (replyData.ContainsKey("Result")&& (replyData["Result"].ToString().ToLower() == "success"))
return true; return true;
else if (!replyData.ContainsKey("Result"))
m_log.DebugFormat("[GRID CONNECTOR]: reply data does not contain result field");
else
m_log.DebugFormat("[GRID CONNECTOR]: unexpected result {0}", replyData["Result"].ToString());
} }
else else
m_log.DebugFormat("[GRID CONNECTOR]: RegisterRegion received null reply"); m_log.DebugFormat("[GRID CONNECTOR]: RegisterRegion received null reply");