mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-20 22:59:34 -05:00
ITS#4188 check for pool pause every 64 entries. (probably should make
this number tunable.)
This commit is contained in:
parent
6715f737b7
commit
a1a63bead0
3 changed files with 12 additions and 0 deletions
|
|
@ -215,6 +215,7 @@ typedef enum {
|
|||
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,
|
||||
|
|
|
|||
|
|
@ -397,6 +397,10 @@ ldap_pvt_thread_pool_query(
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -743,6 +743,13 @@ slap_send_search_entry( Operation *op, SlapReply *rs )
|
|||
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
|
||||
|
|
|
|||
Loading…
Reference in a new issue