From: Thierry FOURNIER Date: Mon, 24 Nov 2014 13:49:56 +0000 (+0100) Subject: MEDIUM: task: call session analyzers if the task is woken by a message. X-Git-Tag: v1.6-dev1~123 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2e05a8c74210689557d326b4741ba028f4c63759;p=thirdparty%2Fhaproxy.git MEDIUM: task: call session analyzers if the task is woken by a message. When a task used to receive a message from another one, its analysers were not called if there was no I/O activity. --- diff --git a/src/session.c b/src/session.c index ad659635dd..31a5182c10 100644 --- a/src/session.c +++ b/src/session.c @@ -1939,7 +1939,8 @@ struct task *process_session(struct task *t) if (((s->req->flags & ~rqf_last) & CF_MASK_ANALYSER) || ((s->req->flags ^ rqf_last) & CF_MASK_STATIC) || s->si[0].state != rq_prod_last || - s->si[1].state != rq_cons_last) { + s->si[1].state != rq_cons_last || + s->task->state & TASK_WOKEN_MSG) { unsigned int flags = s->req->flags; if (s->req->prod->state >= SI_ST_EST) { @@ -2097,7 +2098,8 @@ struct task *process_session(struct task *t) if (((s->rep->flags & ~rpf_last) & CF_MASK_ANALYSER) || (s->rep->flags ^ rpf_last) & CF_MASK_STATIC || s->si[0].state != rp_cons_last || - s->si[1].state != rp_prod_last) { + s->si[1].state != rp_prod_last || + s->task->state & TASK_WOKEN_MSG) { unsigned int flags = s->rep->flags; if ((s->rep->flags & CF_MASK_ANALYSER) &&