diff --git a/servers/slapd/overlays/pcache.c b/servers/slapd/overlays/pcache.c index 20923f5771ad4d9b7bbdb22a1938d809aa112284..60395e62c6c964e7cee0212beb11d5cb748a34f1 100644 --- a/servers/slapd/overlays/pcache.c +++ b/servers/slapd/overlays/pcache.c @@ -1608,16 +1608,15 @@ consistency_check( } ldap_pvt_thread_mutex_unlock(&cm->remove_mutex); } - /* If there were no queries, defer processing for a while */ - if ( pause ) { - ldap_pvt_thread_mutex_lock( &syncrepl_rq.rq_mutex ); - cm->cc_paused = 1; - if ( ldap_pvt_runqueue_isrunning( &syncrepl_rq, rtask )) { - ldap_pvt_runqueue_stoptask( &syncrepl_rq, rtask ); - } - ldap_pvt_runqueue_resched( &syncrepl_rq, rtask, 1 ); - ldap_pvt_thread_mutex_unlock( &syncrepl_rq.rq_mutex ); + ldap_pvt_thread_mutex_lock( &syncrepl_rq.rq_mutex ); + if ( ldap_pvt_runqueue_isrunning( &syncrepl_rq, rtask )) { + ldap_pvt_runqueue_stoptask( &syncrepl_rq, rtask ); } + /* If there were no queries, defer processing for a while */ + cm->cc_paused = pause; + ldap_pvt_runqueue_resched( &syncrepl_rq, rtask, pause ); + + ldap_pvt_thread_mutex_unlock( &syncrepl_rq.rq_mutex ); return NULL; }