From: Mark Valence Date: Sat, 10 Jun 2000 04:12:49 +0000 (+0000) Subject: Fix a race condition by removing (unnecessary) unlock/yield/lock. X-Git-Tag: LDBM_PRE_GIANT_RWLOCK~2674 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1f4b174c379c019d4c3f7ed239a0cb8899ad18ed;p=openldap Fix a race condition by removing (unnecessary) unlock/yield/lock. --- diff --git a/libraries/libldap_r/threads.c b/libraries/libldap_r/threads.c index ca9c7bafb0..22f3e4508a 100644 --- a/libraries/libldap_r/threads.c +++ b/libraries/libldap_r/threads.c @@ -54,6 +54,8 @@ ldap_pvt_thread_list ldap_pvt_thread_pool_list = NULL; ldap_pvt_thread_mutex_t ldap_pvt_thread_pool_mutex; #endif +int ldap_pvt_thread_pool_startup ( void ); +int ldap_pvt_thread_pool_shutdown ( void ); void *ldap_pvt_thread_pool_wrapper( ldap_pvt_thread_pool_t pool ); void *ldap_pvt_thread_enlist( ldap_pvt_thread_list *list, void *elem ); void *ldap_pvt_thread_delist( ldap_pvt_thread_list *list, void *elem ); @@ -448,9 +450,6 @@ ldap_pvt_thread_pool_wrapper ( ldap_pvt_thread_pool_t pool ) * only die if there are other open threads (i.e., * always have at least one thread open). */ - ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex); - ldap_pvt_thread_yield(); - ldap_pvt_thread_mutex_lock(&pool->ltp_mutex); if (pool->ltp_state == LDAP_PVT_THREAD_POOL_RUNNING) ldap_pvt_thread_cond_wait(&pool->ltp_cond, &pool->ltp_mutex);