From: Kurt Zeilenga Date: Mon, 16 Jan 2006 19:59:27 +0000 (+0000) Subject: remove yields X-Git-Tag: OPENLDAP_REL_ENG_2_3_18~12 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=c2d4735bbe18676f74ac5fbd465f31e4dd36dee3;p=openldap remove yields --- diff --git a/servers/slapd/back-bdb/add.c b/servers/slapd/back-bdb/add.c index bb9cd4cb2e..ef2c6dfc29 100644 --- a/servers/slapd/back-bdb/add.c +++ b/servers/slapd/back-bdb/add.c @@ -99,7 +99,6 @@ retry: /* transaction retry */ rs->sr_err = SLAPD_ABANDON; goto return_results; } - ldap_pvt_thread_yield(); bdb_trans_backoff( ++num_retries ); } @@ -425,7 +424,6 @@ return_results: } if( rs->sr_err == LDAP_SUCCESS && bdb->bi_txn_cp ) { - ldap_pvt_thread_yield(); TXN_CHECKPOINT( bdb->bi_dbenv, bdb->bi_txn_cp_kbyte, bdb->bi_txn_cp_min, 0 ); } diff --git a/servers/slapd/back-bdb/delete.c b/servers/slapd/back-bdb/delete.c index 15040c8c1e..0d353188ca 100644 --- a/servers/slapd/back-bdb/delete.c +++ b/servers/slapd/back-bdb/delete.c @@ -95,7 +95,6 @@ retry: /* transaction retry */ } parent_is_glue = 0; parent_is_leaf = 0; - ldap_pvt_thread_yield(); bdb_trans_backoff( ++num_retries ); } @@ -535,7 +534,6 @@ return_results: } if( rs->sr_err == LDAP_SUCCESS && bdb->bi_txn_cp ) { - ldap_pvt_thread_yield(); TXN_CHECKPOINT( bdb->bi_dbenv, bdb->bi_txn_cp_kbyte, bdb->bi_txn_cp_min, 0 ); } diff --git a/servers/slapd/back-bdb/init.c b/servers/slapd/back-bdb/init.c index eff1b5db62..13415f1e1f 100644 --- a/servers/slapd/back-bdb/init.c +++ b/servers/slapd/back-bdb/init.c @@ -161,7 +161,7 @@ bdb_db_open( BackendDB *be ) *ptr++ = LDAP_DIRSEP[0]; strcpy( ptr, "__db.001" ); if( stat( path, &stat2 ) == 0 ) { - if( stat2.st_mtime <= stat1.st_mtime ) { + if( stat2.st_mtime < stat1.st_mtime ) { Debug( LDAP_DEBUG_ANY, "bdb_db_open: DB_CONFIG for suffix %s has changed.\n" "Performing database recovery to activate new settings.\n", @@ -366,8 +366,16 @@ bdb_db_open( BackendDB *be ) if ( !( slapMode & SLAP_TOOL_QUICK )) flags |= BDB_TXN_FLAGS; - if ( do_recover ) - flags |= DB_RECOVER; + if ( do_recover ) { + if ( slapMode & SLAP_TOOL_READONLY ) { + Debug( LDAP_DEBUG_ANY, + "bdb_db_open: Recovery skipped in read-only mode. " + "Run manual recovery if errors are encountered.\n", + 0, 0, 0 ); + } else { + flags |= DB_RECOVER; + } + } /* If a key was set, use shared memory for the BDB environment */ if ( bdb->bi_shm_key ) { diff --git a/servers/slapd/back-bdb/modify.c b/servers/slapd/back-bdb/modify.c index 29cb7ba9e8..317a1797d1 100644 --- a/servers/slapd/back-bdb/modify.c +++ b/servers/slapd/back-bdb/modify.c @@ -327,7 +327,6 @@ retry: /* transaction retry */ rs->sr_err = SLAPD_ABANDON; goto return_results; } - ldap_pvt_thread_yield(); bdb_trans_backoff( ++num_retries ); } @@ -595,7 +594,6 @@ return_results: slap_graduate_commit_csn( op ); if( rs->sr_err == LDAP_SUCCESS && bdb->bi_txn_cp ) { - ldap_pvt_thread_yield(); TXN_CHECKPOINT( bdb->bi_dbenv, bdb->bi_txn_cp_kbyte, bdb->bi_txn_cp_min, 0 ); } diff --git a/servers/slapd/back-bdb/modrdn.c b/servers/slapd/back-bdb/modrdn.c index 2fab263ae0..4a7f6e8626 100644 --- a/servers/slapd/back-bdb/modrdn.c +++ b/servers/slapd/back-bdb/modrdn.c @@ -108,7 +108,6 @@ retry: /* transaction retry */ } parent_is_glue = 0; parent_is_leaf = 0; - ldap_pvt_thread_yield(); bdb_trans_backoff( ++num_retries ); } @@ -779,7 +778,6 @@ return_results: send_ldap_result( op, rs ); if( rs->sr_err == LDAP_SUCCESS && bdb->bi_txn_cp ) { - ldap_pvt_thread_yield(); TXN_CHECKPOINT( bdb->bi_dbenv, bdb->bi_txn_cp_kbyte, bdb->bi_txn_cp_min, 0 ); } diff --git a/servers/slapd/back-bdb/operational.c b/servers/slapd/back-bdb/operational.c index aa75b5f207..ad23046d62 100644 --- a/servers/slapd/back-bdb/operational.c +++ b/servers/slapd/back-bdb/operational.c @@ -56,7 +56,6 @@ retry: switch( rc ) { case DB_LOCK_DEADLOCK: case DB_LOCK_NOTGRANTED: - ldap_pvt_thread_yield(); goto retry; case 0: diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c index e1e5be5840..59f81ff920 100644 --- a/servers/slapd/back-bdb/search.c +++ b/servers/slapd/back-bdb/search.c @@ -921,8 +921,6 @@ loop_continue: e = NULL; rs->sr_entry = NULL; } - - ldap_pvt_thread_yield(); } nochange: