]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Author: Henrik Nordstrom <henrik@henriknordstrom.net>
authorAmos Jeffries <squid3@treenet.co.nz>
Thu, 19 Feb 2009 02:03:33 +0000 (15:03 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Thu, 19 Feb 2009 02:03:33 +0000 (15:03 +1300)
Need to kick all deferred reads when a delaypool is updated, otherwise things queue up too long.

The chaos SHOULD be addressed by randomizing the order...
(not yet done. XXX comment addded in comm.cc)

src/DelayPool.cc
src/comm.cc

index d8e837d792d13963e9aa83a258bb373419b24623..358f004af2f928507ec35455e057b5729af1004d 100644 (file)
@@ -115,11 +115,7 @@ CompositePoolNode::delayRead(DeferredRead const &aRead)
 void
 CompositePoolNode::kickReads()
 {
-    /* we only start one, because delay pools may have **many** attached connections,
-     * and kicking them all off would be chaotic.
-     * This may need to be reviewed.
-     */
-    deferredReads.kickReads(1);
+    deferredReads.kickReads(-1);
 }
 
 #endif
index 5eecf5601d8145d2c1fb377f99ebee4928d56a41..4bb5e9869236527c3c2e6d777bad2157a4b33eae 100644 (file)
@@ -2495,6 +2495,7 @@ DeferredReadManager::flushReads() {
     reads = deferredReads;
     deferredReads = ListContainer<DeferredRead>();
 
+    // XXX: For fairness this SHOULD randomize the order
     while (!reads.empty()) {
         DeferredRead aRead = popHead(reads);
         kickARead(aRead);