openldap2/slapd-bdb-stop-checkpoint.dif

27 lines
941 B
Plaintext
Raw Normal View History

Index: servers/slapd/back-bdb/init.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-bdb/init.c,v
retrieving revision 1.293
retrieving revision 1.294
diff -u -r1.293 -r1.294
--- servers/slapd/back-bdb/init.c 27 Aug 2008 20:28:16 -0000 1.293
+++ servers/slapd/back-bdb/init.c 12 Sep 2008 07:53:40 -0000 1.294
@@ -640,6 +640,17 @@
{
struct bdb_info *bdb = (struct bdb_info *) be->be_private;
+ /* stop and remove checkpoint task */
+ if ( bdb->bi_txn_cp_task ) {
+ struct re_s *re = bdb->bi_txn_cp_task;
+ bdb->bi_txn_cp_task = NULL;
+ ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );
+ if ( ldap_pvt_runqueue_isrunning( &slapd_rq, re ) )
+ ldap_pvt_runqueue_stoptask( &slapd_rq, re );
+ ldap_pvt_runqueue_remove( &slapd_rq, re );
+ ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );
+ }
+
/* monitor handling */
(void)bdb_monitor_db_destroy( be );