MEDIUM: stream: Eventually handle stream timeouts when exiting process_stream()

When we exit from process_stream(), if the task is expired, we try to handle
the stream timeouts and we resync the stream-connectors. This avoids a
useless immediate wakeup. It is not really an issue, but it is a small
improvement in edge cases.
This commit is contained in:
Christopher Faulet 2023-02-27 16:21:00 +01:00
parent 85e568f594
commit e758b5c703

View File

@ -2539,6 +2539,13 @@ struct task *process_stream(struct task *t, void *context, unsigned int state)
t->expire = tick_first(t->expire, s->conn_exp);
if (unlikely(tick_is_expired(t->expire, now_ms))) {
/* Some events prevented the timeouts to be handled but nothing evolved.
So do it now and resyunc the stconns
*/
stream_handle_timeouts(s);
goto resync_stconns;
}
s->pending_events &= ~(TASK_WOKEN_TIMER | TASK_WOKEN_RES);
stream_release_buffers(s);