From 06c889335777ef42c76576cf10de941598aeebb7 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 15 Sep 2021 15:14:12 +0100 Subject: [PATCH] some changes on oshttp send control --- .../OSHttpServer/ContextTimeoutManager.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/OpenSim/Framework/Servers/HttpServer/OSHttpServer/ContextTimeoutManager.cs b/OpenSim/Framework/Servers/HttpServer/OSHttpServer/ContextTimeoutManager.cs index 6aa6d5b5a5..40912dbd3e 100644 --- a/OpenSim/Framework/Servers/HttpServer/OSHttpServer/ContextTimeoutManager.cs +++ b/OpenSim/Framework/Servers/HttpServer/OSHttpServer/ContextTimeoutManager.cs @@ -163,31 +163,35 @@ namespace OSHttpServer curConcurrentLimit = inqueues; HttpClientContext ctx; - int sent; + int sentFromQueue; + bool done; while (curConcurrentLimit > 0) { - sent = 0; + sentFromQueue = 0; + done = true; while (m_highPrio.TryDequeue(out ctx)) { if (m_shuttingDown) return; + done = false; if (ctx.TrySendResponse(curbytesLimit)) { --curConcurrentLimit; - if (++sent == 3) + if (++sentFromQueue == 3) break; } } - sent = 0; + sentFromQueue = 0; while(m_midPrio.TryDequeue(out ctx)) { if (m_shuttingDown) return; + done = false; if (ctx.TrySendResponse(curbytesLimit)) { --curConcurrentLimit; - if (++sent >= 2) + if (++sentFromQueue >= 2) break; } } @@ -196,9 +200,13 @@ namespace OSHttpServer { if (m_shuttingDown) return; + done = false; if (ctx.TrySendResponse(curbytesLimit)) --curConcurrentLimit; } + + if (done) + break; } }