chiark / gitweb /
A comment to explain selection of conns
authorIan Jackson <ian@liberator.(none)>
Mon, 26 Apr 2010 09:27:38 +0000 (10:27 +0100)
committerIan Jackson <ian@liberator.(none)>
Mon, 26 Apr 2010 09:27:38 +0000 (10:27 +0100)
backends/innduct.c

index 428d021..c2ca557 100644 (file)
@@ -837,6 +837,13 @@ static void check_master_queue(void) {
     
     Conn *walk, *use=0;
     int spare;
     
     Conn *walk, *use=0;
     int spare;
+
+    /* Find a connection to offer this article.  We prefer a busy
+     * connection to an idle one, provided it's not full.  We take the
+     * first (oldest) and since that's stable, it will mean we fill up
+     * connections in order.  That way if we have too many
+     * connections, the spare ones will go away eventually.
+     */
     for (walk=LIST_HEAD(conns); walk; walk=LIST_NEXT(walk)) {
       int inqueue= walk->sent.count + walk->queue.count;
       spare= walk->max_queue - inqueue;
     for (walk=LIST_HEAD(conns); walk; walk=LIST_NEXT(walk)) {
       int inqueue= walk->sent.count + walk->queue.count;
       spare= walk->max_queue - inqueue;