sc_ep_report_send_activity(sc);
else {
sc_ep_report_blocked_send(sc);
- __sc_strm(sc)->task->expire = tick_first(__sc_strm(sc)->task->expire, sc_ep_snd_ex(sc));
- task_queue(__sc_strm(sc)->task);
}
/* measure the call rate and check for anomalies when too high */
(channel_is_empty(oc) && !oc->to_forward)))))) {
task_wakeup(task, TASK_WOKEN_IO);
}
+ else {
+ /* Update expiration date for the task and requeue it */
+ task->expire = (tick_is_expired(task->expire, now_ms) ? 0 : task->expire);
+ task->expire = tick_first(task->expire, sc_ep_rcv_ex(sc));
+ task->expire = tick_first(task->expire, sc_ep_snd_ex(sc));
+ task->expire = tick_first(task->expire, sc_ep_rcv_ex(sco));
+ task->expire = tick_first(task->expire, sc_ep_snd_ex(sco));
+ task->expire = tick_first(task->expire, ic->analyse_exp);
+ task->expire = tick_first(task->expire, oc->analyse_exp);
+ task->expire = tick_first(task->expire, __sc_strm(sc)->conn_exp);
+
+ task_queue(task);
+ }
+
if (ic->flags & CF_READ_EVENT)
sc->flags &= ~SC_FL_RCV_ONCE;
}
else {
/* We couldn't send all of our data, let the mux know we'd like to send more */
conn->mux->subscribe(sc, SUB_RETRY_SEND, &sc->wait_event);
- if (sc_state_in(sc->state, SC_SB_EST|SC_SB_DIS|SC_SB_CLO)) {
+ if (sc_state_in(sc->state, SC_SB_EST|SC_SB_DIS|SC_SB_CLO))
sc_ep_report_blocked_send(sc);
- s->task->expire = tick_first(s->task->expire, sc_ep_snd_ex(sc));
- task_queue(s->task);
- }
}
return did_send;