Merge branch 'ubitwork' of ssh://3dhosting.de/var/git/careminster into ubitwork

avinationmerge
ubit 2012-10-05 07:04:58 +02:00
commit ceb33b24f7
4 changed files with 70 additions and 40 deletions

View File

@ -706,9 +706,10 @@ namespace OpenSim.Framework
// m_log.DebugFormat("[WEB UTIL]: <{0}> start osd request for {1}, method {2}",reqnum,url,method); // m_log.DebugFormat("[WEB UTIL]: <{0}> start osd request for {1}, method {2}",reqnum,url,method);
int tickstart = Util.EnvironmentTickCount(); int tickstart = Util.EnvironmentTickCount();
int tickdata = 0; // int tickdata = 0;
int tickdiff = 0;
// m_log.DebugFormat("[ASYNC REQUEST]: Starting {0} {1}", verb, requestUrl); // m_log.DebugFormat("[ASYNC REQUEST]: Starting {0} {1}", verb, requestUrl);
Type type = typeof(TRequest); Type type = typeof(TRequest);
@ -751,8 +752,8 @@ namespace OpenSim.Framework
requestStream.Close(); requestStream.Close();
// capture how much time was spent writing // capture how much time was spent writing
tickdata = Util.EnvironmentTickCountSubtract(tickstart); // useless in this async
// tickdata = Util.EnvironmentTickCountSubtract(tickstart);
request.BeginGetResponse(delegate(IAsyncResult ar) request.BeginGetResponse(delegate(IAsyncResult ar)
{ {
response = request.EndGetResponse(ar); response = request.EndGetResponse(ar);
@ -769,7 +770,8 @@ namespace OpenSim.Framework
finally finally
{ {
// Let's not close this // Let's not close this
//buffer.Close(); // yes do close it
buffer.Close();
respStream.Close(); respStream.Close();
response.Close(); response.Close();
} }
@ -837,7 +839,6 @@ namespace OpenSim.Framework
} }
// m_log.DebugFormat("[ASYNC REQUEST]: Received {0}", deserial.ToString()); // m_log.DebugFormat("[ASYNC REQUEST]: Received {0}", deserial.ToString());
try try
{ {
action(deserial); action(deserial);
@ -852,9 +853,10 @@ namespace OpenSim.Framework
}, null); }, null);
} }
int tickdiff = Util.EnvironmentTickCountSubtract(tickstart); tickdiff = Util.EnvironmentTickCountSubtract(tickstart);
if (tickdiff > WebUtil.LongCallTime) if (tickdiff > WebUtil.LongCallTime)
{ {
/*
string originalRequest = null; string originalRequest = null;
if (buffer != null) if (buffer != null)
@ -873,6 +875,13 @@ namespace OpenSim.Framework
tickdiff, tickdiff,
tickdata, tickdata,
originalRequest); originalRequest);
*/
m_log.InfoFormat(
"[ASYNC REQUEST]: Slow WebRequest SETUP <{0}> {1} {2} took {3}ms",
reqnum,
verb,
requestUrl,
tickdiff);
} }
} }
} }
@ -903,6 +912,8 @@ namespace OpenSim.Framework
request.Method = verb; request.Method = verb;
string respstring = String.Empty; string respstring = String.Empty;
int tickset = Util.EnvironmentTickCountSubtract(tickstart);
using (MemoryStream buffer = new MemoryStream()) using (MemoryStream buffer = new MemoryStream())
{ {
if ((verb == "POST") || (verb == "PUT")) if ((verb == "POST") || (verb == "PUT"))
@ -979,11 +990,12 @@ namespace OpenSim.Framework
int tickdiff = Util.EnvironmentTickCountSubtract(tickstart); int tickdiff = Util.EnvironmentTickCountSubtract(tickstart);
if (tickdiff > WebUtil.LongCallTime) if (tickdiff > WebUtil.LongCallTime)
m_log.InfoFormat( m_log.InfoFormat(
"[FORMS]: Slow request to <{0}> {1} {2} took {3}ms, {4}ms writing, {5}", "[FORMS]: Slow request to <{0}> {1} {2} took {3}ms {4}ms writing {5}",
reqnum, reqnum,
verb, verb,
requestUrl, requestUrl,
tickdiff, tickdiff,
tickset,
tickdata, tickdata,
obj.Length > WebUtil.MaxRequestDiagLength ? obj.Remove(WebUtil.MaxRequestDiagLength) : obj); obj.Length > WebUtil.MaxRequestDiagLength ? obj.Remove(WebUtil.MaxRequestDiagLength) : obj);

View File

@ -87,7 +87,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
{ {
if (m_defaultAnimation.AnimID == animID) if (m_defaultAnimation.AnimID == animID)
{ {
ResetDefaultAnimation(); m_defaultAnimation = new OpenSim.Framework.Animation(UUID.Zero, 1, UUID.Zero);
} }
else if (HasAnimation(animID)) else if (HasAnimation(animID))
{ {
@ -149,19 +149,26 @@ namespace OpenSim.Region.Framework.Scenes.Animation
{ {
lock (m_animations) lock (m_animations)
{ {
animIDs = new UUID[m_animations.Count + 1]; int defaultSize = 0;
sequenceNums = new int[m_animations.Count + 1]; if (m_defaultAnimation.AnimID != UUID.Zero)
objectIDs = new UUID[m_animations.Count + 1]; defaultSize++;
animIDs[0] = m_defaultAnimation.AnimID; animIDs = new UUID[m_animations.Count + defaultSize];
sequenceNums[0] = m_defaultAnimation.SequenceNum; sequenceNums = new int[m_animations.Count + defaultSize];
objectIDs[0] = m_defaultAnimation.ObjectID; objectIDs = new UUID[m_animations.Count + defaultSize];
if (m_defaultAnimation.AnimID != UUID.Zero)
{
animIDs[0] = m_defaultAnimation.AnimID;
sequenceNums[0] = m_defaultAnimation.SequenceNum;
objectIDs[0] = m_defaultAnimation.ObjectID;
}
for (int i = 0; i < m_animations.Count; ++i) for (int i = 0; i < m_animations.Count; ++i)
{ {
animIDs[i + 1] = m_animations[i].AnimID; animIDs[i + defaultSize] = m_animations[i].AnimID;
sequenceNums[i + 1] = m_animations[i].SequenceNum; sequenceNums[i + defaultSize] = m_animations[i].SequenceNum;
objectIDs[i + 1] = m_animations[i].ObjectID; objectIDs[i + defaultSize] = m_animations[i].ObjectID;
} }
} }
} }

View File

@ -424,13 +424,19 @@ namespace OpenSim.Region.Framework.Scenes.Animation
{ {
lock (m_animations) lock (m_animations)
{ {
CurrentMovementAnimation = DetermineMovementAnimation(); string newMovementAnimation = DetermineMovementAnimation();
if (CurrentMovementAnimation != newMovementAnimation)
{
CurrentMovementAnimation = DetermineMovementAnimation();
// m_log.DebugFormat( // m_log.DebugFormat(
// "[SCENE PRESENCE ANIMATOR]: Determined animation {0} for {1} in UpdateMovementAnimations()", // "[SCENE PRESENCE ANIMATOR]: Determined animation {0} for {1} in UpdateMovementAnimations()",
// CurrentMovementAnimation, m_scenePresence.Name); // CurrentMovementAnimation, m_scenePresence.Name);
TrySetMovementAnimation(CurrentMovementAnimation); // Only set it if it's actually changed, give a script
// a chance to stop a default animation
TrySetMovementAnimation(CurrentMovementAnimation);
}
} }
} }
@ -552,4 +558,4 @@ namespace OpenSim.Region.Framework.Scenes.Animation
SendAnimPack(animIDs, sequenceNums, objectIDs); SendAnimPack(animIDs, sequenceNums, objectIDs);
} }
} }
} }

View File

@ -295,25 +295,30 @@ namespace OpenSim.Services.Connectors
bool success = false; bool success = false;
try try
{ {
AsynchronousRestObjectRequester.MakeRequest<int, AssetBase>("GET", uri, 0, AssetBase a = SynchronousRestObjectRequester.MakeRequest<int, AssetBase>("GET", uri, 0, 30);
delegate(AssetBase a) if (a != null)
{ {
if (m_Cache != null) if (m_Cache != null)
m_Cache.Cache(a); m_Cache.Cache(a);
List<AssetRetrievedEx> handlers; List<AssetRetrievedEx> handlers;
lock (m_AssetHandlers) lock (m_AssetHandlers)
{
handlers = m_AssetHandlers[id];
m_AssetHandlers.Remove(id);
}
foreach (AssetRetrievedEx h in handlers)
{
Util.FireAndForget(x =>
{ {
handlers = m_AssetHandlers[id];
m_AssetHandlers.Remove(id);
}
foreach (AssetRetrievedEx h in handlers)
h.Invoke(a); h.Invoke(a);
if (handlers != null) });
handlers.Clear(); }
}, 30); if (handlers != null)
handlers.Clear();
success = true; success = true;
}
} }
finally finally
{ {
@ -326,7 +331,7 @@ namespace OpenSim.Services.Connectors
m_AssetHandlers.Remove(id); m_AssetHandlers.Remove(id);
} }
if (handlers != null) if (handlers != null)
handlers.Clear(); handlers.Clear();
} }
} }
} }