aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs22
1 files changed, 14 insertions, 8 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs b/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
index d4603f8..cac57b2 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
@@ -97,7 +97,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
97 /// </summary> 97 /// </summary>
98 protected float m_burst; 98 protected float m_burst;
99 99
100 public virtual float MaxDripRate { get; set; } 100 protected float m_maxDripRate = 0;
101 public virtual float MaxDripRate
102 {
103 get { return m_maxDripRate; }
104 set { m_maxDripRate = value; }
105 }
101 106
102 public float RequestedBurst 107 public float RequestedBurst
103 { 108 {
@@ -134,7 +139,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
134 /// the system tick interval (typically around 15-22ms)</remarks> 139 /// the system tick interval (typically around 15-22ms)</remarks>
135 protected float m_dripRate; 140 protected float m_dripRate;
136 141
137 public virtual float RequestedDripRate 142 public float RequestedDripRate
138 { 143 {
139 get { return (m_dripRate == 0 ? m_totalDripRequest : m_dripRate); } 144 get { return (m_dripRate == 0 ? m_totalDripRequest : m_dripRate); }
140 set { 145 set {
@@ -146,7 +151,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
146 } 151 }
147 } 152 }
148 153
149 public virtual float DripRate 154 public float DripRate
150 { 155 {
151 get { 156 get {
152 float rate = Math.Min(RequestedDripRate,TotalDripRequest); 157 float rate = Math.Min(RequestedDripRate,TotalDripRequest);
@@ -344,7 +349,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
344 // greater than this. 349 // greater than this.
345 // </summary> 350 // </summary>
346 351
347 protected float m_maxDripRate = 0;
348 public override float MaxDripRate 352 public override float MaxDripRate
349 { 353 {
350 get { return (m_maxDripRate == 0 ? m_totalDripRequest : m_maxDripRate); } 354 get { return (m_maxDripRate == 0 ? m_totalDripRequest : m_maxDripRate); }
@@ -359,7 +363,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
359 // <summary> 363 // <summary>
360 // Adjust drip rate in response to network conditions. 364 // Adjust drip rate in response to network conditions.
361 // </summary> 365 // </summary>
362 public virtual float AdjustedDripRate 366 public float AdjustedDripRate
363 { 367 {
364 get { return m_dripRate; } 368 get { return m_dripRate; }
365 set 369 set
@@ -380,12 +384,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
380 { 384 {
381 m_enabled = enabled; 385 m_enabled = enabled;
382 386
383 MaxDripRate = maxDripRate; 387 m_maxDripRate = (maxDripRate == 0 ? m_totalDripRequest : Math.Max(maxDripRate, m_minimumFlow));
384 388
385 if (enabled) 389 if (enabled)
386 AdjustedDripRate = m_maxDripRate * .5f; 390 m_dripRate = m_maxDripRate * .5f;
387 else 391 else
388 AdjustedDripRate = m_maxDripRate; 392 m_dripRate = m_maxDripRate;
393 if (m_parent != null)
394 m_parent.RegisterRequest(this, m_dripRate);
389 } 395 }
390 396
391 /// <summary> 397 /// <summary>