From 0b1a4541dc199abca5eb3af1ec58c239ad2a3d9b Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 23 Apr 2015 11:50:43 +0200 Subject: [PATCH] MEDIUM: stream-int: pause the appctx if the task is woken up 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 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/stream_interface.c b/src/stream_interface.c index 08946dfdf..7e201cd7c 100644 --- a/src/stream_interface.c +++ b/src/stream_interface.c @@ -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;