LDAP_PVT_THREAD_POOL_PARAM_OPEN,
LDAP_PVT_THREAD_POOL_PARAM_STARTING,
LDAP_PVT_THREAD_POOL_PARAM_ACTIVE,
+ LDAP_PVT_THREAD_POOL_PARAM_PAUSING,
LDAP_PVT_THREAD_POOL_PARAM_PENDING,
LDAP_PVT_THREAD_POOL_PARAM_BACKLOAD,
LDAP_PVT_THREAD_POOL_PARAM_ACTIVE_MAX,
count = pool->ltp_active_count;
break;
+ case LDAP_PVT_THREAD_POOL_PARAM_PAUSING:
+ count = pool->ltp_pause;
+ break;
+
case LDAP_PVT_THREAD_POOL_PARAM_PENDING:
count = pool->ltp_pending_count;
break;
return LDAP_SIZELIMIT_EXCEEDED;
}
+ /* Every 64 entries, check for thread pool pause */
+ if (( rs->sr_nentries & 0x3f == 0x3f ) &&
+ ldap_pvt_thread_pool_query( &connection_pool,
+ LDAP_PVT_THREAD_POOL_PARAM_PAUSING, &i ) == 0 && i ) {
+ return LDAP_BUSY;
+ }
+
rs->sr_type = REP_SEARCH;
/* eventually will loop through generated operational attribute types