diff options
author | John Hurliman | 2009-10-21 01:07:40 -0700 |
---|---|---|
committer | John Hurliman | 2009-10-21 01:07:40 -0700 |
commit | c0c845aea462ea7b15580c72f5513e5e1ef02030 (patch) | |
tree | aa9ec4f34c0a58af271e720c79071d85cd745e22 | |
parent | Committing Jim's optimization to replace the 20ms sleep in outgoing packet ha... (diff) | |
download | opensim-SC_OLD-c0c845aea462ea7b15580c72f5513e5e1ef02030.zip opensim-SC_OLD-c0c845aea462ea7b15580c72f5513e5e1ef02030.tar.gz opensim-SC_OLD-c0c845aea462ea7b15580c72f5513e5e1ef02030.tar.bz2 opensim-SC_OLD-c0c845aea462ea7b15580c72f5513e5e1ef02030.tar.xz |
Fixed the way OnQueueEmpty is called to prevent simultaneous calls for the same category
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs index b9d2c15..ca9925c 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs | |||
@@ -541,7 +541,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
541 | if (throttleIndex > 0) | 541 | if (throttleIndex > 0) |
542 | { | 542 | { |
543 | if (!m_onQueueEmptyRunning[throttleIndex]) | 543 | if (!m_onQueueEmptyRunning[throttleIndex]) |
544 | { | ||
545 | m_onQueueEmptyRunning[throttleIndex] = true; | ||
544 | Util.FireAndForget(FireQueueEmpty, throttleIndex); | 546 | Util.FireAndForget(FireQueueEmpty, throttleIndex); |
547 | } | ||
545 | } | 548 | } |
546 | } | 549 | } |
547 | 550 | ||
@@ -559,14 +562,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
559 | 562 | ||
560 | if (callback != null) | 563 | if (callback != null) |
561 | { | 564 | { |
562 | if (!m_onQueueEmptyRunning[i]) | 565 | try { callback(type); } |
563 | { | 566 | catch (Exception e) { m_log.Error("[LLUDPCLIENT]: OnQueueEmpty(" + type + ") threw an exception: " + e.Message, e); } |
564 | m_onQueueEmptyRunning[i] = true; | ||
565 | try { callback(type); } | ||
566 | catch (Exception e) { m_log.Error("[LLUDPCLIENT]: OnQueueEmpty(" + type + ") threw an exception: " + e.Message, e); } | ||
567 | m_onQueueEmptyRunning[i] = false; | ||
568 | } | ||
569 | } | 567 | } |
568 | |||
569 | m_onQueueEmptyRunning[i] = false; | ||
570 | } | 570 | } |
571 | } | 571 | } |
572 | } | 572 | } |