From: Ondřej Kuzník Date: Wed, 12 May 2021 10:03:05 +0000 (+0100) Subject: ITS#9596 Let others wait on the startup readiness indication X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b7390f1710adccb051b96e07da3f476c9a67b858;p=thirdparty%2Fopenldap.git ITS#9596 Let others wait on the startup readiness indication --- diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index a3d0cc1989..03345c6fa2 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -2612,7 +2612,7 @@ slapd_daemon_task( sock_errstr(err, ebuf, sizeof(ebuf)) ); ldap_pvt_thread_mutex_lock( &slapd_init_mutex ); slapd_shutdown = 2; - ldap_pvt_thread_cond_signal( &slapd_init_cond ); + ldap_pvt_thread_cond_broadcast( &slapd_init_cond ); ldap_pvt_thread_mutex_unlock( &slapd_init_mutex ); return (void*)-1; } @@ -2623,7 +2623,7 @@ slapd_daemon_task( "set nonblocking on a listening socket failed\n" ); ldap_pvt_thread_mutex_lock( &slapd_init_mutex ); slapd_shutdown = 2; - ldap_pvt_thread_cond_signal( &slapd_init_cond ); + ldap_pvt_thread_cond_broadcast( &slapd_init_cond ); ldap_pvt_thread_mutex_unlock( &slapd_init_mutex ); return (void*)-1; } @@ -2633,7 +2633,7 @@ slapd_daemon_task( ldap_pvt_thread_mutex_lock( &slapd_init_mutex ); slapd_ready = 1; - ldap_pvt_thread_cond_signal( &slapd_init_cond ); + ldap_pvt_thread_cond_broadcast( &slapd_init_cond ); ldap_pvt_thread_mutex_unlock( &slapd_init_mutex ); #ifdef HAVE_NT_SERVICE_MANAGER diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index 18dae88e12..047d35d210 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -905,6 +905,7 @@ LDAP_SLAPD_V (SOCKET *) slapd_ws_sockets; LDAP_SLAPD_V (ldap_pvt_thread_mutex_t) slapd_init_mutex; LDAP_SLAPD_V (ldap_pvt_thread_cond_t) slapd_init_cond; +LDAP_SLAPD_V (int) slapd_ready; /* * dn.c