Tweak prev commit, avoid rescheduling running qtask

This commit is contained in:
Howard Chu 2005-10-02 12:28:50 +00:00
parent 190d6e768d
commit 7486ef93df

View File

@ -70,6 +70,7 @@ typedef struct syncops {
struct syncres *s_res;
struct syncres *s_restail;
struct re_s *s_qtask; /* task for playing psearch responses */
#define RUNQ_INTERVAL 36000 /* a long time */
ldap_pvt_thread_mutex_t s_mutex;
} syncops;
@ -900,14 +901,14 @@ syncprov_qresp( opcookie *opc, syncops *so, int mode )
if ( so->s_flags & PS_IS_DETACHED ) {
ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );
if ( !so->s_qtask ) {
so->s_qtask = ldap_pvt_runqueue_insert( &slapd_rq, 1,
so->s_qtask = ldap_pvt_runqueue_insert( &slapd_rq, RUNQ_INTERVAL,
syncprov_qtask, so, "syncprov_qtask",
so->s_op->o_conn->c_peer_name.bv_val );
} else {
if (!ldap_pvt_runqueue_isrunning( &slapd_rq, so->s_qtask )) {
so->s_qtask->interval.tv_sec = 0;
ldap_pvt_runqueue_resched( &slapd_rq, so->s_qtask, 0 );
so->s_qtask->interval.tv_sec = 1;
so->s_qtask->interval.tv_sec = RUNQ_INTERVAL;
}
}
ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );