Import TXN patch from HEAD

This commit is contained in:
Howard Chu 2005-06-23 23:00:19 +00:00
parent 7002e4f8a5
commit ad1034cb43

View file

@ -37,6 +37,14 @@ static void bdb_lru_print(Cache *cache);
static int bdb_txn_get( Operation *op, DB_ENV *env, DB_TXN **txn, int reset );
/* 4.2.52 */
#if DB_VERSION_FULL == 0x04020034
#define READ_TXN_FLAG ReadFlag
static int ReadFlag = DB_TXN_NOT_DURABLE;
#else
#define READ_TXN_FLAG 0
#endif
static EntryInfo *
bdb_cache_entryinfo_new( Cache *cache )
{
@ -1211,7 +1219,17 @@ bdb_txn_get( Operation *op, DB_ENV *env, DB_TXN **txn, int reset )
if ( ldap_pvt_thread_pool_getkey( ctx, ((char *)env)+1, &data, NULL ) ||
data == NULL ) {
for ( i=0, rc=1; rc != 0 && i<4; i++ ) {
rc = TXN_BEGIN( env, NULL, txn, 0 );
rc = TXN_BEGIN( env, NULL, txn, READ_TXN_FLAG );
#if DB_VERSION_FULL == 0x04020034
if ( rc == EINVAL && READ_TXN_FLAG ) {
READ_TXN_FLAG = 0;
Debug( LDAP_DEBUG_ANY,
"bdb_txn_get: BerkeleyDB 4.2.52 library needs TXN patch!\n",
0, 0, 0 );
i--;
continue;
}
#endif
if (rc) ldap_pvt_thread_yield();
}
if ( rc != 0) {