Get rid of trivial yield, for completeness' sake.

This commit is contained in:
Howard Chu 2006-01-15 14:34:44 +00:00
parent 78a9d66e53
commit 7f5ea4c098

View File

@ -508,14 +508,7 @@ ldap_pvt_thread_pool_destroy ( ldap_pvt_thread_pool_t *tpool, int run_pending )
: LDAP_INT_THREAD_POOL_STOPPING;
ldap_pvt_thread_cond_broadcast(&pool->ltp_cond);
ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex);
do {
ldap_pvt_thread_yield();
ldap_pvt_thread_mutex_lock(&pool->ltp_mutex);
waiting = pool->ltp_open_count;
ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex);
} while (waiting > 0);
ldap_pvt_thread_cond_wait(&pool->ltp_cond, &pool->ltp_mutex);
while ((ctx = LDAP_STAILQ_FIRST(&pool->ltp_pending_list)) != NULL)
{
@ -645,6 +638,11 @@ ldap_int_thread_pool_wrapper (
thread_keys[keyslot].id = tid_zero;
pool->ltp_open_count--;
/* let pool_destroy know we're all done */
if (pool->ltp_open_count < 1)
ldap_pvt_thread_cond_signal(&pool->ltp_cond);
ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex);
ldap_pvt_thread_exit(NULL);