]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MEDIUM: task: call session analyzers if the task is woken by a message.
authorThierry FOURNIER <tfournier@haproxy.com>
Mon, 24 Nov 2014 13:49:56 +0000 (14:49 +0100)
committerWilly Tarreau <w@1wt.eu>
Sat, 28 Feb 2015 22:12:30 +0000 (23:12 +0100)
When a task used to receive a message from another one, its analysers
were not called if there was no I/O activity.

src/session.c

index ad659635dd5cdfa8a2ca0f781adf913071a32a00..31a5182c10c7c48f95da1a1b90249532935827ca 100644 (file)
@@ -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) &&