forked from pool/openldap2
77 lines
2.6 KiB
Plaintext
77 lines
2.6 KiB
Plaintext
Index: openldap-2.4.12/servers/slapd/back-bdb/tools.c
|
|
===================================================================
|
|
--- openldap-2.4.12.orig/servers/slapd/back-bdb/tools.c
|
|
+++ openldap-2.4.12/servers/slapd/back-bdb/tools.c
|
|
@@ -75,11 +75,7 @@ static ldap_pvt_thread_mutex_t bdb_tool_
|
|
static ldap_pvt_thread_cond_t bdb_tool_index_cond_main;
|
|
static ldap_pvt_thread_cond_t bdb_tool_index_cond_work;
|
|
|
|
-static ldap_pvt_thread_mutex_t bdb_tool_trickle_mutex;
|
|
-static ldap_pvt_thread_cond_t bdb_tool_trickle_cond;
|
|
-
|
|
static void * bdb_tool_index_task( void *ctx, void *ptr );
|
|
-static void * bdb_tool_trickle_task( void *ctx, void *ptr );
|
|
|
|
int bdb_tool_entry_open(
|
|
BackendDB *be, int mode )
|
|
@@ -106,10 +102,6 @@ int bdb_tool_entry_open(
|
|
/* Set up for threaded slapindex */
|
|
if (( slapMode & (SLAP_TOOL_QUICK|SLAP_TOOL_READONLY)) == SLAP_TOOL_QUICK ) {
|
|
if ( !bdb_tool_info ) {
|
|
- ldap_pvt_thread_mutex_init( &bdb_tool_trickle_mutex );
|
|
- ldap_pvt_thread_cond_init( &bdb_tool_trickle_cond );
|
|
- ldap_pvt_thread_pool_submit( &connection_pool, bdb_tool_trickle_task, bdb->bi_dbenv );
|
|
-
|
|
ldap_pvt_thread_mutex_init( &bdb_tool_index_mutex );
|
|
ldap_pvt_thread_cond_init( &bdb_tool_index_cond_main );
|
|
ldap_pvt_thread_cond_init( &bdb_tool_index_cond_work );
|
|
@@ -137,9 +129,6 @@ int bdb_tool_entry_close(
|
|
{
|
|
if ( bdb_tool_info ) {
|
|
slapd_shutdown = 1;
|
|
- ldap_pvt_thread_mutex_lock( &bdb_tool_trickle_mutex );
|
|
- ldap_pvt_thread_cond_signal( &bdb_tool_trickle_cond );
|
|
- ldap_pvt_thread_mutex_unlock( &bdb_tool_trickle_mutex );
|
|
ldap_pvt_thread_mutex_lock( &bdb_tool_index_mutex );
|
|
bdb_tool_index_tcount = slap_tool_thread_max - 1;
|
|
ldap_pvt_thread_cond_broadcast( &bdb_tool_index_cond_work );
|
|
@@ -522,12 +511,6 @@ ID bdb_tool_entry_put(
|
|
goto done;
|
|
}
|
|
|
|
- if (( slapMode & SLAP_TOOL_QUICK ) && (( e->e_id & 0xfff ) == 0xfff )) {
|
|
- ldap_pvt_thread_mutex_lock( &bdb_tool_trickle_mutex );
|
|
- ldap_pvt_thread_cond_signal( &bdb_tool_trickle_cond );
|
|
- ldap_pvt_thread_mutex_unlock( &bdb_tool_trickle_mutex );
|
|
- }
|
|
-
|
|
if ( !bdb->bi_linear_index )
|
|
rc = bdb_tool_index_add( &op, tid, e );
|
|
if( rc != 0 ) {
|
|
@@ -1100,25 +1083,6 @@ int bdb_tool_idl_add(
|
|
#endif
|
|
|
|
static void *
|
|
-bdb_tool_trickle_task( void *ctx, void *ptr )
|
|
-{
|
|
- DB_ENV *env = ptr;
|
|
- int wrote;
|
|
-
|
|
- ldap_pvt_thread_mutex_lock( &bdb_tool_trickle_mutex );
|
|
- while ( 1 ) {
|
|
- ldap_pvt_thread_cond_wait( &bdb_tool_trickle_cond,
|
|
- &bdb_tool_trickle_mutex );
|
|
- if ( slapd_shutdown )
|
|
- break;
|
|
- env->memp_trickle( env, 30, &wrote );
|
|
- }
|
|
- ldap_pvt_thread_mutex_unlock( &bdb_tool_trickle_mutex );
|
|
-
|
|
- return NULL;
|
|
-}
|
|
-
|
|
-static void *
|
|
bdb_tool_index_task( void *ctx, void *ptr )
|
|
{
|
|
int base = *(int *)ptr;
|