diff options
author | UbitUmarov | 2014-07-24 17:14:14 +0100 |
---|---|---|
committer | UbitUmarov | 2014-07-24 17:14:14 +0100 |
commit | ee951f7a1038eee5f0760674b0cffab9a6d0328f (patch) | |
tree | 7252d30c494d73322e97927d2ed60a533b106244 | |
parent | let BlockingQueue timeout work as its suposed to and not wait for ever (diff) | |
download | opensim-SC-ee951f7a1038eee5f0760674b0cffab9a6d0328f.zip opensim-SC-ee951f7a1038eee5f0760674b0cffab9a6d0328f.tar.gz opensim-SC-ee951f7a1038eee5f0760674b0cffab9a6d0328f.tar.bz2 opensim-SC-ee951f7a1038eee5f0760674b0cffab9a6d0328f.tar.xz |
EventQueueGetModule: dont reuse queues, we dont know whats there; make
pool silently loose requests for unknown avatars, or they will stay active
until timeout after close ( possible not a big problem after not reusing
queues ? )
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs index ffb53af..e0ce35b 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs | |||
@@ -307,12 +307,12 @@ namespace OpenSim.Region.ClientStack.Linden | |||
307 | lock (m_AvatarQueueUUIDMapping) | 307 | lock (m_AvatarQueueUUIDMapping) |
308 | { | 308 | { |
309 | // Reuse open queues. The client does! | 309 | // Reuse open queues. The client does! |
310 | if (m_AvatarQueueUUIDMapping.ContainsKey(agentID)) | 310 | // if (m_AvatarQueueUUIDMapping.ContainsKey(agentID)) |
311 | { | 311 | // { |
312 | //m_log.DebugFormat("[EVENTQUEUE]: Found Existing UUID!"); | 312 | //m_log.DebugFormat("[EVENTQUEUE]: Found Existing UUID!"); |
313 | eventQueueGetUUID = m_AvatarQueueUUIDMapping[agentID]; | 313 | // eventQueueGetUUID = m_AvatarQueueUUIDMapping[agentID]; |
314 | } | 314 | // } |
315 | else | 315 | // else |
316 | { | 316 | { |
317 | eventQueueGetUUID = UUID.Random(); | 317 | eventQueueGetUUID = UUID.Random(); |
318 | //m_log.DebugFormat("[EVENTQUEUE]: Using random UUID!"); | 318 | //m_log.DebugFormat("[EVENTQUEUE]: Using random UUID!"); |
@@ -345,9 +345,6 @@ namespace OpenSim.Region.ClientStack.Linden | |||
345 | 345 | ||
346 | public bool HasEvents(UUID requestID, UUID agentID) | 346 | public bool HasEvents(UUID requestID, UUID agentID) |
347 | { | 347 | { |
348 | // Don't use this, because of race conditions at agent closing time | ||
349 | //Queue<OSD> queue = TryGetQueue(agentID); | ||
350 | |||
351 | Queue<OSD> queue = GetQueue(agentID); | 348 | Queue<OSD> queue = GetQueue(agentID); |
352 | if (queue != null) | 349 | if (queue != null) |
353 | lock (queue) | 350 | lock (queue) |
@@ -356,7 +353,8 @@ namespace OpenSim.Region.ClientStack.Linden | |||
356 | return queue.Count > 0; | 353 | return queue.Count > 0; |
357 | } | 354 | } |
358 | 355 | ||
359 | return false; | 356 | m_log.WarnFormat("POLLED FOR EVENTS BY {0} unknown agent", agentID); |
357 | return true; | ||
360 | } | 358 | } |
361 | 359 | ||
362 | /// <summary> | 360 | /// <summary> |
@@ -382,7 +380,8 @@ namespace OpenSim.Region.ClientStack.Linden | |||
382 | Queue<OSD> queue = GetQueue(pAgentId); | 380 | Queue<OSD> queue = GetQueue(pAgentId); |
383 | if (queue == null) | 381 | if (queue == null) |
384 | { | 382 | { |
385 | return NoEvents(requestID, pAgentId); | 383 | //return NoEvents(requestID, pAgentId); |
384 | return null; | ||
386 | } | 385 | } |
387 | 386 | ||
388 | OSD element; | 387 | OSD element; |