mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-22 07:39:35 -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_OPEN,
|
||||||
LDAP_PVT_THREAD_POOL_PARAM_STARTING,
|
LDAP_PVT_THREAD_POOL_PARAM_STARTING,
|
||||||
LDAP_PVT_THREAD_POOL_PARAM_ACTIVE,
|
LDAP_PVT_THREAD_POOL_PARAM_ACTIVE,
|
||||||
|
LDAP_PVT_THREAD_POOL_PARAM_PAUSING,
|
||||||
LDAP_PVT_THREAD_POOL_PARAM_PENDING,
|
LDAP_PVT_THREAD_POOL_PARAM_PENDING,
|
||||||
LDAP_PVT_THREAD_POOL_PARAM_BACKLOAD,
|
LDAP_PVT_THREAD_POOL_PARAM_BACKLOAD,
|
||||||
LDAP_PVT_THREAD_POOL_PARAM_ACTIVE_MAX,
|
LDAP_PVT_THREAD_POOL_PARAM_ACTIVE_MAX,
|
||||||
|
|
|
||||||
|
|
@ -397,6 +397,10 @@ ldap_pvt_thread_pool_query(
|
||||||
count = pool->ltp_active_count;
|
count = pool->ltp_active_count;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LDAP_PVT_THREAD_POOL_PARAM_PAUSING:
|
||||||
|
count = pool->ltp_pause;
|
||||||
|
break;
|
||||||
|
|
||||||
case LDAP_PVT_THREAD_POOL_PARAM_PENDING:
|
case LDAP_PVT_THREAD_POOL_PARAM_PENDING:
|
||||||
count = pool->ltp_pending_count;
|
count = pool->ltp_pending_count;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -743,6 +743,13 @@ slap_send_search_entry( Operation *op, SlapReply *rs )
|
||||||
return LDAP_SIZELIMIT_EXCEEDED;
|
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;
|
rs->sr_type = REP_SEARCH;
|
||||||
|
|
||||||
/* eventually will loop through generated operational attribute types
|
/* eventually will loop through generated operational attribute types
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue