diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs index 8230401..34d46a0 100644 --- a/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs | |||
@@ -328,15 +328,19 @@ namespace OpenSim.Region.CoreModules.Framework.EventQueue | |||
328 | 328 | ||
329 | public bool HasEvents(UUID agentID) | 329 | public bool HasEvents(UUID agentID) |
330 | { | 330 | { |
331 | Queue<OSD> queue = TryGetQueue(agentID); | 331 | // Don't use this, because of race conditions at agent closing time |
332 | lock (queue) | 332 | //Queue<OSD> queue = TryGetQueue(agentID); |
333 | { | ||
334 | if (queue.Count > 0) | ||
335 | return true; | ||
336 | else | ||
337 | return false; | ||
338 | } | ||
339 | 333 | ||
334 | Queue<OSD> queue = GetQueue(agentID); | ||
335 | if (queue != null) | ||
336 | lock (queue) | ||
337 | { | ||
338 | if (queue.Count > 0) | ||
339 | return true; | ||
340 | else | ||
341 | return false; | ||
342 | } | ||
343 | return false; | ||
340 | } | 344 | } |
341 | 345 | ||
342 | public Hashtable GetEvents(UUID pAgentId, string request) | 346 | public Hashtable GetEvents(UUID pAgentId, string request) |