From: Adam Dickmeiss Date: Mon, 22 Feb 2010 15:45:27 +0000 (+0100) Subject: Fix mutex handling in host resolver X-Git-Tag: v1.4.0~118 X-Git-Url: http://sru.miketaylor.org.uk/?a=commitdiff_plain;h=de185af5ab36376968640dea3b64ff1c8aee8cec;p=pazpar2-moved-to-github.git Fix mutex handling in host resolver --- diff --git a/src/connection.c b/src/connection.c index f205252..f9b0e0b 100644 --- a/src/connection.c +++ b/src/connection.c @@ -274,6 +274,7 @@ void connect_resolver_host(struct host *host, iochan_man_t iochan_man) { struct connection *con; +start: yaz_mutex_enter(host->mutex); con = host->connections; while (con) @@ -284,22 +285,22 @@ void connect_resolver_host(struct host *host, iochan_man_t iochan_man) { yaz_mutex_leave(host->mutex); connection_destroy(con); + goto start; /* start all over .. at some point it will be NULL */ - con = host->connections; } else if (!con->client) { yaz_mutex_leave(host->mutex); connection_destroy(con); /* start all over .. at some point it will be NULL */ - con = host->connections; + goto start; } else { yaz_mutex_leave(host->mutex); connection_connect(con, iochan_man); client_start_search(con->client); - con = host->connections; + goto start; } } else