nextcheck/3600, (nextcheck%3600)/60, nextcheck%60);
rtask->interval.tv_sec = nextcheck;
ldap_pvt_runqueue_resched( &slapd_rq, rtask, 0 );
- slap_wake_listener();
ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );
return NULL;
}
li->li_conn_expire_task->interval.tv_sec = next_timeout - now;
ldap_pvt_runqueue_resched( &slapd_rq, li->li_conn_expire_task, 0 );
- /*
- * The thread that handles runqueue might have already processed all tasks
- * before we insertered new task or rescheduled the existing task with new
- * timeout period. Wake it up to ensure that the task will be picked up.
- */
- slap_wake_listener();
Debug( LDAP_DEBUG_TRACE,
"ldap_back_conn_prune: scheduled connection expiry timer to %ld sec\n",
li->li_conn_expire_task->interval.tv_sec );
ldap_back_conn_expire_time( li, lc ) - slap_get_time(),
ldap_back_conn_expire_fn, li, "ldap_back_conn_expire_fn",
"ldap_back_conn_expire_timer" );
- slap_wake_listener();
Debug( LDAP_DEBUG_TRACE,
"ldap_back_conn_prune: scheduled connection expiry timer to %ld sec\n",
li->li_conn_expire_task->interval.tv_sec );
refint_data *id;
refint_q *rq;
refint_attrs *ip;
- int ac;
/* If the main op failed or is not a Delete or ModRdn, ignore it */
if (( op->o_tag != LDAP_REQ_DELETE && op->o_tag != LDAP_REQ_MODRDN ) ||
id->qtail = rq;
ldap_pvt_thread_mutex_unlock( &id->qmutex );
- ac = 0;
ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );
if ( !id->qtask ) {
id->qtask = ldap_pvt_runqueue_insert( &slapd_rq, RUNQ_INTERVAL,
refint_qtask, id, "refint_qtask",
op->o_bd->be_suffix[0].bv_val );
- ac = 1;
} else {
if ( !ldap_pvt_runqueue_isrunning( &slapd_rq, id->qtask ) &&
!id->qtask->next_sched.tv_sec ) {
id->qtask->interval.tv_sec = 0;
ldap_pvt_runqueue_resched( &slapd_rq, id->qtask, 0 );
id->qtask->interval.tv_sec = RUNQ_INTERVAL;
- ac = 1;
}
}
ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );
- if ( ac )
- slap_wake_listener();
return SLAP_CB_CONTINUE;
}
}
si->si_retrynum[i] = RETRYNUM_TAIL;
}
- slap_wake_listener();
rc = 0;
} else {
for ( i = 0; si->si_retrynum && si->si_retrynum[i] <= 0; i++ ) {
fail = si->si_retrynum[i];
rtask->interval.tv_sec = si->si_retryinterval[i];
ldap_pvt_runqueue_resched( &slapd_rq, rtask, 0 );
- slap_wake_listener();
}
}