diff options
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index f1a81ae..e8aee3e 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -417,10 +417,13 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
417 | m_savequeue.Remove(avatarID); | 417 | m_savequeue.Remove(avatarID); |
418 | } | 418 | } |
419 | } | 419 | } |
420 | } | ||
421 | 420 | ||
422 | if (m_savequeue.Count == 0 && m_sendqueue.Count == 0) | 421 | // We must lock both queues here so that QueueAppearanceSave() or *Send() don't m_updateTimer.Start() on |
423 | m_updateTimer.Stop(); | 422 | // another thread inbetween the first count calls and m_updateTimer.Stop() on this thread. |
423 | lock (m_sendqueue) | ||
424 | if (m_savequeue.Count == 0 && m_sendqueue.Count == 0) | ||
425 | m_updateTimer.Stop(); | ||
426 | } | ||
424 | } | 427 | } |
425 | 428 | ||
426 | private void SaveAppearance(UUID agentid) | 429 | private void SaveAppearance(UUID agentid) |