From: Bradley Nicholes Date: Wed, 10 Apr 2002 17:13:32 +0000 (+0000) Subject: Closed up some holes where a thread could escape and exit without releasing X-Git-Tag: 2.0.36~237 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1269b72fbf7e84259b6a94cfddfeab0db0fcf650;p=thirdparty%2Fapache%2Fhttpd.git Closed up some holes where a thread could escape and exit without releasing the mutex. This would leave all of the other threads deadlocked. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94593 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/mpm/netware/mpm_netware.c b/server/mpm/netware/mpm_netware.c index f6b460f8772..dc337aa77fb 100644 --- a/server/mpm/netware/mpm_netware.c +++ b/server/mpm/netware/mpm_netware.c @@ -518,11 +518,13 @@ got_listener: */ ap_log_error(APLOG_MARK, APLOG_EMERG, stat, ap_server_conf, "apr_accept: giving up."); + apr_thread_mutex_unlock(accept_mutex); clean_child_exit(APEXIT_CHILDFATAL, my_worker_num, bucket_alloc); default: ap_log_error(APLOG_MARK, APLOG_ERR, stat, ap_server_conf, "apr_accept: (client socket)"); + apr_thread_mutex_unlock(accept_mutex); clean_child_exit(1, my_worker_num, bucket_alloc); } } @@ -872,6 +874,7 @@ static int shutdown_listeners() for (lr = ap_listeners; lr; lr = lr->next) { apr_socket_close(lr->sd); } + ap_listeners = NULL; return 0; }