aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
diff options
context:
space:
mode:
authorUbitUmarov2016-07-16 19:53:41 +0100
committerUbitUmarov2016-07-16 19:53:41 +0100
commitd1810866b3177c9c6026f619426c1bda72e14374 (patch)
tree1549ce924af875d296fcb67ef606e2c6a8e76228 /OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
parent disable OSHttpTests that will collide with testing new http server changes (diff)
downloadopensim-SC-d1810866b3177c9c6026f619426c1bda72e14374.zip
opensim-SC-d1810866b3177c9c6026f619426c1bda72e14374.tar.gz
opensim-SC-d1810866b3177c9c6026f619426c1bda72e14374.tar.bz2
opensim-SC-d1810866b3177c9c6026f619426c1bda72e14374.tar.xz
simplify http textures and meshs Throttles
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs30
1 files changed, 9 insertions, 21 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
index 0c4e227..14a59fe 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
@@ -356,7 +356,9 @@ namespace OpenSim.Region.ClientStack.Linden
356 356
357 internal void UpdateThrottle(int pimagethrottle) 357 internal void UpdateThrottle(int pimagethrottle)
358 { 358 {
359 m_throttler.ThrottleBytes = pimagethrottle; 359 m_throttler.ThrottleBytes = 2 * pimagethrottle;
360 if(m_throttler.ThrottleBytes < 10000)
361 m_throttler.ThrottleBytes = 10000;
360 } 362 }
361 } 363 }
362 364
@@ -425,10 +427,11 @@ namespace OpenSim.Region.ClientStack.Linden
425 private volatile int currenttime = 0; 427 private volatile int currenttime = 0;
426 private volatile int lastTimeElapsed = 0; 428 private volatile int lastTimeElapsed = 0;
427 private volatile int BytesSent = 0; 429 private volatile int BytesSent = 0;
428 private int oversizedImages = 0;
429 public CapsDataThrottler(int pBytes, int max, int min) 430 public CapsDataThrottler(int pBytes, int max, int min)
430 { 431 {
431 ThrottleBytes = pBytes; 432 ThrottleBytes = pBytes;
433 if(ThrottleBytes < 10000)
434 ThrottleBytes = 10000;
432 lastTimeElapsed = Util.EnvironmentTickCount(); 435 lastTimeElapsed = Util.EnvironmentTickCount();
433 } 436 }
434 public bool hasEvents(UUID key, Dictionary<UUID, GetTextureModule.aPollResponse> responses) 437 public bool hasEvents(UUID key, Dictionary<UUID, GetTextureModule.aPollResponse> responses)
@@ -448,20 +451,9 @@ namespace OpenSim.Region.ClientStack.Linden
448 return true; 451 return true;
449 452
450 // Normal 453 // Normal
451 if (BytesSent + response.bytes <= ThrottleBytes) 454 if (BytesSent <= ThrottleBytes)
452 { 455 {
453 BytesSent += response.bytes; 456 BytesSent += response.bytes;
454 //TimeBasedAction timeBasedAction = new TimeBasedAction { byteRemoval = response.bytes, requestId = key, timeMS = currenttime + 1000, unlockyn = false };
455 //m_actions.Add(timeBasedAction);
456 return true;
457 }
458 // Big textures
459 else if (response.bytes > ThrottleBytes && oversizedImages <= ((ThrottleBytes % 50000) + 1))
460 {
461 Interlocked.Increment(ref oversizedImages);
462 BytesSent += response.bytes;
463 //TimeBasedAction timeBasedAction = new TimeBasedAction { byteRemoval = response.bytes, requestId = key, timeMS = currenttime + (((response.bytes % ThrottleBytes)+1)*1000) , unlockyn = false };
464 //m_actions.Add(timeBasedAction);
465 return true; 457 return true;
466 } 458 }
467 else 459 else
@@ -483,15 +475,11 @@ namespace OpenSim.Region.ClientStack.Linden
483 currenttime = Util.EnvironmentTickCount(); 475 currenttime = Util.EnvironmentTickCount();
484 int timeElapsed = Util.EnvironmentTickCountSubtract(currenttime, lastTimeElapsed); 476 int timeElapsed = Util.EnvironmentTickCountSubtract(currenttime, lastTimeElapsed);
485 //processTimeBasedActions(responses); 477 //processTimeBasedActions(responses);
486 if (Util.EnvironmentTickCountSubtract(currenttime, timeElapsed) >= 1000) 478 if (timeElapsed >= 100)
487 { 479 {
488 lastTimeElapsed = Util.EnvironmentTickCount(); 480 lastTimeElapsed = currenttime;
489 BytesSent -= ThrottleBytes; 481 BytesSent -= (ThrottleBytes * timeElapsed / 1000);
490 if (BytesSent < 0) BytesSent = 0; 482 if (BytesSent < 0) BytesSent = 0;
491 if (BytesSent < ThrottleBytes)
492 {
493 oversizedImages = 0;
494 }
495 } 483 }
496 } 484 }
497 public int ThrottleBytes; 485 public int ThrottleBytes;