ldap_pvt_thread_rdwr_init( &bdb->bi_idl_tree_rwlock );
ldap_pvt_thread_mutex_init( &bdb->bi_idl_tree_lrulock );
+ {
+ Entry *e = entry_alloc();
+ e->e_id = 0;
+ e->e_private = &bdb->bi_cache.c_dntree;
+ BER_BVSTR( &e->e_name, "" );
+ BER_BVSTR( &e->e_nname, "" );
+ bdb->bi_cache.c_dntree.bei_e = e;
+ }
+
be->be_private = bdb;
be->be_cf_ocs = be->bd_info->bi_cf_ocs;
XLOCK_ID_FREE(bdb->bi_dbenv, bdb->bi_cache.c_locker);
bdb->bi_cache.c_locker = 0;
}
-
+#ifdef BDB_REUSE_LOCKERS
+ bdb_locker_flush( bdb->bi_dbenv );
+#endif
/* force a checkpoint, but not if we were ReadOnly,
* and not in Quick mode since there are no transactions there.
*/
ldap_pvt_thread_rdwr_destroy( &bdb->bi_idl_tree_rwlock );
ldap_pvt_thread_mutex_destroy( &bdb->bi_idl_tree_lrulock );
+ entry_free( bdb->bi_cache.c_dntree.bei_e );
+
ch_free( bdb );
be->be_private = NULL;