]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MEDIUM: stream-int: pause the appctx if the task is woken up
authorWilly Tarreau <w@1wt.eu>
Thu, 23 Apr 2015 09:50:43 +0000 (11:50 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 23 Apr 2015 15:56:17 +0000 (17:56 +0200)
If we're going to call the task we don't need to call the appctx anymore
since the task may decide differently in the end and will do the proper
thing using ->update(). This reduces one wake up call per session and
may go down to half in case of high concurrency (scheduling races).

src/stream_interface.c

index 08946dfdf8ddffe5f4879614e9ea26f374225003..7e201cd7cce060510291b16cc751c86f83b6abdd 100644 (file)
@@ -1454,6 +1454,7 @@ void si_applet_done(struct stream_interface *si)
               (si_opposite(si)->state != SI_ST_EST ||
                (channel_is_empty(oc) && !oc->to_forward)))))) {
                task_wakeup(si_task(si), TASK_WOKEN_IO);
+               appctx_pause(si_appctx(si));
        }
        if (ic->flags & CF_READ_ACTIVITY)
                ic->flags &= ~CF_READ_DONTWAIT;