#define BDB_MAX_ADD_LOOP 30
+#define BDB_ALIASES 1
+
#ifdef BDB_SUBDIRS
#define BDB_TMP_SUBDIR "tmp"
#define BDB_LG_SUBDIR "log"
/* The default search IDL stack cache depth */
#define DEFAULT_SEARCH_STACK_DEPTH 16
+/* The minimum we can function with */
+#define MINIMUM_SEARCH_STACK_DEPTH 8
+
/* for the IDL cache */
#define SLAP_IDL_CACHE 1
int bi_ndatabases;
struct bdb_db_info **bi_databases;
- ldap_pvt_thread_mutex_t bi_database_mutex;
int bi_db_opflags; /* db-specific flags */
slap_mask_t bi_defaultmask;
ID bi_lastid;
ldap_pvt_thread_mutex_t bi_lastid_mutex;
#if defined(LDAP_CLIENT_UPDATE) || defined(LDAP_SYNC)
- LDAP_LIST_HEAD(pl, slap_op) psearch_list;
+ LDAP_LIST_HEAD(pl, slap_op) bi_psearch_list;
#endif
#ifdef SLAP_IDL_CACHE
int bi_idl_cache_max_size;
Avlnode *bi_idl_tree;
bdb_idl_cache_entry_t *bi_idl_lru_head;
bdb_idl_cache_entry_t *bi_idl_lru_tail;
- ldap_pvt_thread_mutex_t bi_idl_tree_mutex;
+ ldap_pvt_thread_rdwr_t bi_idl_tree_rwlock;
+ ldap_pvt_thread_mutex_t bi_idl_tree_lrulock;
#endif
};
struct bdb_op_info {
BackendDB* boi_bdb;
DB_TXN* boi_txn;
+ DB_LOCK boi_lock; /* used when no txn */
u_int32_t boi_err;
u_int32_t boi_locker;
int boi_acl_cache;