From de185af5ab36376968640dea3b64ff1c8aee8cec Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 22 Feb 2010 16:45:27 +0100 Subject: [PATCH] Fix mutex handling in host resolver --- src/connection.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 -- 1.7.10.4