From: Dennis Schafroth Date: Thu, 6 May 2010 11:05:36 +0000 (+0200) Subject: Fix the fix on unlimited connections. X-Git-Tag: v1.4.1~31 X-Git-Url: http://git.indexdata.com/?a=commitdiff_plain;h=6f67e37390eee5bb4df6a456de88045ef810406d;p=pazpar2-moved-to-github.git Fix the fix on unlimited connections. Nice, Dennis. End-less loop. Break out, if max_connections is not active or if we havent used more connections than max connections. --- diff --git a/src/connection.c b/src/connection.c index a936090..c2c5677 100644 --- a/src/connection.c +++ b/src/connection.c @@ -504,22 +504,20 @@ int client_prep_connection(struct client *cl, num_connections); break; } - if (max_connections > 0) { - if (num_connections < max_connections) - { - yaz_log(YLOG_LOG, "num_connections = %d (new); max = %d", - num_connections, max_connections); - break; - } - yaz_log(YLOG_LOG, "num_connections = %d (waiting) max = %d", + if (max_connections <= 0 || num_connections < max_connections) + { + yaz_log(YLOG_LOG, "num_connections = %d (new); max = %d", num_connections, max_connections); - if (yaz_cond_wait(host->cond_ready, host->mutex, abstime)) - { - yaz_log(YLOG_LOG, "out of connections %s", client_get_url(cl)); - client_set_state(cl, Client_Error); - yaz_mutex_leave(host->mutex); - return 0; - } + break; + } + yaz_log(YLOG_LOG, "num_connections = %d (waiting) max = %d", + num_connections, max_connections); + if (yaz_cond_wait(host->cond_ready, host->mutex, abstime)) + { + yaz_log(YLOG_LOG, "out of connections %s", client_get_url(cl)); + client_set_state(cl, Client_Error); + yaz_mutex_leave(host->mutex); + return 0; } } if (co)