mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-01 04:29:35 -05:00
Fix idl_cache teardown again - skip if cache is empty
This commit is contained in:
parent
bce4063a17
commit
831d1cccc7
1 changed files with 14 additions and 14 deletions
|
|
@ -71,8 +71,7 @@ bdb_db_init( BackendDB *be )
|
|||
#ifdef BDB_HIER
|
||||
ldap_pvt_thread_mutex_init( &bdb->bi_modrdns_mutex );
|
||||
#endif
|
||||
ldap_pvt_thread_mutex_init( &bdb->bi_cache.lru_head_mutex );
|
||||
ldap_pvt_thread_mutex_init( &bdb->bi_cache.lru_tail_mutex );
|
||||
ldap_pvt_thread_mutex_init( &bdb->bi_cache.lru_mutex );
|
||||
ldap_pvt_thread_mutex_init( &bdb->bi_cache.c_count_mutex );
|
||||
ldap_pvt_thread_mutex_init( &bdb->bi_cache.c_eifree_mutex );
|
||||
ldap_pvt_thread_mutex_init( &bdb->bi_cache.c_dntree.bei_kids_mutex );
|
||||
|
|
@ -476,16 +475,18 @@ bdb_db_close( BackendDB *be )
|
|||
if ( bdb->bi_idl_cache_max_size ) {
|
||||
avl_free( bdb->bi_idl_tree, NULL );
|
||||
bdb->bi_idl_tree = NULL;
|
||||
entry = bdb->bi_idl_lru_head;
|
||||
do {
|
||||
next_entry = entry->idl_lru_next;
|
||||
if ( entry->idl )
|
||||
free( entry->idl );
|
||||
free( entry->kstr.bv_val );
|
||||
free( entry );
|
||||
entry = next_entry;
|
||||
} while ( entry != bdb->bi_idl_lru_head );
|
||||
bdb->bi_idl_lru_head = bdb->bi_idl_lru_tail = NULL;
|
||||
if ( bdb->bi_idl_lru_head ) {
|
||||
entry = bdb->bi_idl_lru_head;
|
||||
do {
|
||||
next_entry = entry->idl_lru_next;
|
||||
if ( entry->idl )
|
||||
free( entry->idl );
|
||||
free( entry->kstr.bv_val );
|
||||
free( entry );
|
||||
entry = next_entry;
|
||||
} while ( entry != bdb->bi_idl_lru_head );
|
||||
bdb->bi_idl_lru_head = bdb->bi_idl_lru_tail = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* close db environment */
|
||||
|
|
@ -542,8 +543,7 @@ bdb_db_destroy( BackendDB *be )
|
|||
bdb_attr_index_destroy( bdb );
|
||||
|
||||
ldap_pvt_thread_rdwr_destroy ( &bdb->bi_cache.c_rwlock );
|
||||
ldap_pvt_thread_mutex_destroy( &bdb->bi_cache.lru_head_mutex );
|
||||
ldap_pvt_thread_mutex_destroy( &bdb->bi_cache.lru_tail_mutex );
|
||||
ldap_pvt_thread_mutex_destroy( &bdb->bi_cache.lru_mutex );
|
||||
ldap_pvt_thread_mutex_destroy( &bdb->bi_cache.c_count_mutex );
|
||||
ldap_pvt_thread_mutex_destroy( &bdb->bi_cache.c_eifree_mutex );
|
||||
ldap_pvt_thread_mutex_destroy( &bdb->bi_cache.c_dntree.bei_kids_mutex );
|
||||
|
|
|
|||
Loading…
Reference in a new issue