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).
This commit is contained in:
Willy Tarreau 2015-04-23 11:50:43 +02:00
parent fe127937a8
commit 0b1a4541dc

View 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;