diff --git a/libraries/libldap_r/tpool.c b/libraries/libldap_r/tpool.c index 9a0ed4d884..affdef689a 100644 --- a/libraries/libldap_r/tpool.c +++ b/libraries/libldap_r/tpool.c @@ -368,8 +368,9 @@ ldap_pvt_thread_pool_submit ( return(0); } ldap_pvt_thread_cond_signal(&pool->ltp_cond); - if (pool->ltp_max_count <= 0 - || pool->ltp_open_count < pool->ltp_max_count) + if (pool->ltp_open_count < pool->ltp_active_count + pool->ltp_pending_count + && (pool->ltp_open_count < pool->ltp_max_count || + pool->ltp_max_count <= 0 )) { pool->ltp_open_count++; pool->ltp_starting++;