diff options
Diffstat (limited to 'OpenSim/Region/CoreModules')
4 files changed, 30 insertions, 13 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index eff6911..d866636 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -169,6 +169,8 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
169 | 169 | ||
170 | public bool SendAppearance(UUID agentId) | 170 | public bool SendAppearance(UUID agentId) |
171 | { | 171 | { |
172 | // m_log.DebugFormat("[AVFACTORY]: Sending appearance for {0}", agentId); | ||
173 | |||
172 | ScenePresence sp = m_scene.GetScenePresence(agentId); | 174 | ScenePresence sp = m_scene.GetScenePresence(agentId); |
173 | if (sp == null) | 175 | if (sp == null) |
174 | { | 176 | { |
@@ -257,7 +259,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
257 | /// </summary> | 259 | /// </summary> |
258 | public void QueueAppearanceSend(UUID agentid) | 260 | public void QueueAppearanceSend(UUID agentid) |
259 | { | 261 | { |
260 | // m_log.WarnFormat("[AVFACTORY]: Queue appearance send for {0}", agentid); | 262 | // m_log.DebugFormat("[AVFACTORY]: Queue appearance send for {0}", agentid); |
261 | 263 | ||
262 | // 10000 ticks per millisecond, 1000 milliseconds per second | 264 | // 10000 ticks per millisecond, 1000 milliseconds per second |
263 | long timestamp = DateTime.Now.Ticks + Convert.ToInt64(m_sendtime * 1000 * 10000); | 265 | long timestamp = DateTime.Now.Ticks + Convert.ToInt64(m_sendtime * 1000 * 10000); |
@@ -391,10 +393,17 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
391 | Dictionary<UUID, long> sends = new Dictionary<UUID, long>(m_sendqueue); | 393 | Dictionary<UUID, long> sends = new Dictionary<UUID, long>(m_sendqueue); |
392 | foreach (KeyValuePair<UUID, long> kvp in sends) | 394 | foreach (KeyValuePair<UUID, long> kvp in sends) |
393 | { | 395 | { |
394 | if (kvp.Value < now) | 396 | // We have to load the key and value into local parameters to avoid a race condition if we loop |
397 | // around and load kvp with a different value before FireAndForget has launched its thread. | ||
398 | UUID avatarID = kvp.Key; | ||
399 | long sendTime = kvp.Value; | ||
400 | |||
401 | // m_log.DebugFormat("[AVFACTORY]: Handling queued appearance updates for {0}, update delta to now is {1}", avatarID, sendTime - now); | ||
402 | |||
403 | if (sendTime < now) | ||
395 | { | 404 | { |
396 | Util.FireAndForget(delegate(object o) { SendAppearance(kvp.Key); }); | 405 | Util.FireAndForget(o => SendAppearance(avatarID)); |
397 | m_sendqueue.Remove(kvp.Key); | 406 | m_sendqueue.Remove(avatarID); |
398 | } | 407 | } |
399 | } | 408 | } |
400 | } | 409 | } |
@@ -404,10 +413,15 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
404 | Dictionary<UUID, long> saves = new Dictionary<UUID, long>(m_savequeue); | 413 | Dictionary<UUID, long> saves = new Dictionary<UUID, long>(m_savequeue); |
405 | foreach (KeyValuePair<UUID, long> kvp in saves) | 414 | foreach (KeyValuePair<UUID, long> kvp in saves) |
406 | { | 415 | { |
407 | if (kvp.Value < now) | 416 | // We have to load the key and value into local parameters to avoid a race condition if we loop |
417 | // around and load kvp with a different value before FireAndForget has launched its thread. | ||
418 | UUID avatarID = kvp.Key; | ||
419 | long sendTime = kvp.Value; | ||
420 | |||
421 | if (sendTime < now) | ||
408 | { | 422 | { |
409 | Util.FireAndForget(delegate(object o) { SaveAppearance(kvp.Key); }); | 423 | Util.FireAndForget(o => SaveAppearance(avatarID)); |
410 | m_savequeue.Remove(kvp.Key); | 424 | m_savequeue.Remove(avatarID); |
411 | } | 425 | } |
412 | } | 426 | } |
413 | } | 427 | } |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 26151bf..e47d2a7 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -1740,7 +1740,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1740 | //m_log.Debug(" >>> CrossPrimGroupIntoNewRegion <<<"); | 1740 | //m_log.Debug(" >>> CrossPrimGroupIntoNewRegion <<<"); |
1741 | 1741 | ||
1742 | bool successYN = false; | 1742 | bool successYN = false; |
1743 | grp.RootPart.UpdateFlag = 0; | 1743 | grp.RootPart.ClearUpdateSchedule(); |
1744 | //int primcrossingXMLmethod = 0; | 1744 | //int primcrossingXMLmethod = 0; |
1745 | 1745 | ||
1746 | if (destination != null) | 1746 | if (destination != null) |
diff --git a/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs b/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs index 6075e19..f2c8b3d 100644 --- a/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs | |||
@@ -395,9 +395,11 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture | |||
395 | { | 395 | { |
396 | result = OpenJPEG.EncodeFromImage(joint, true); | 396 | result = OpenJPEG.EncodeFromImage(joint, true); |
397 | } | 397 | } |
398 | catch (Exception) | 398 | catch (Exception e) |
399 | { | 399 | { |
400 | m_log.Error("[DYNAMICTEXTUREMODULE]: OpenJpeg Encode Failed. Empty byte data returned!"); | 400 | m_log.ErrorFormat( |
401 | "[DYNAMICTEXTUREMODULE]: OpenJpeg Encode Failed. Exception {0}{1}", | ||
402 | e.Message, e.StackTrace); | ||
401 | } | 403 | } |
402 | 404 | ||
403 | return result; | 405 | return result; |
diff --git a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs index 7316e5b..c061868 100644 --- a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs | |||
@@ -338,10 +338,11 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender | |||
338 | { | 338 | { |
339 | imageJ2000 = OpenJPEG.EncodeFromImage(bitmap, true); | 339 | imageJ2000 = OpenJPEG.EncodeFromImage(bitmap, true); |
340 | } | 340 | } |
341 | catch (Exception) | 341 | catch (Exception e) |
342 | { | 342 | { |
343 | m_log.Error( | 343 | m_log.ErrorFormat( |
344 | "[VECTORRENDERMODULE]: OpenJpeg Encode Failed. Empty byte data returned!"); | 344 | "[VECTORRENDERMODULE]: OpenJpeg Encode Failed. Exception {0}{1}", |
345 | e.Message, e.StackTrace); | ||
345 | } | 346 | } |
346 | 347 | ||
347 | m_textureManager.ReturnData(id, imageJ2000); | 348 | m_textureManager.ReturnData(id, imageJ2000); |