]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MAJOR: applets: Use tasks, instead of rolling our own scheduler.
authorOlivier Houchard <ohouchard@haproxy.com>
Fri, 25 May 2018 14:58:52 +0000 (16:58 +0200)
committerWilly Tarreau <w@1wt.eu>
Sat, 26 May 2018 18:03:30 +0000 (20:03 +0200)
commit673867c357260d13a8a6fcd17a3d2eb77ba10e5c
treea829c7ba7761d1d0fdb3f766ee4bbd285cc8919b
parent1599b8036090edbf85d8c08f0da4c54dfd7f9343
MAJOR: applets: Use tasks, instead of rolling our own scheduler.

There's no real reason to have a specific scheduler for applets anymore, so
nuke it and just use tasks. This comes with some benefits, the first one
being that applets cannot induce high latencies anymore since they share
nice values with other tasks. Later it will be possible to configure the
applets' nice value. The second benefit is that the applet scheduler was
not very thread-friendly, having a big lock around it in prevision of this
change. Thus applet-intensive workloads should now scale much better with
threads.

Some more improvement is possible now : some applets also use a task to
handle timers and timeouts. These ones could now be simplified to use only
one task.
include/proto/applet.h
include/proto/channel.h
include/types/applet.h
include/types/global.h
src/applet.c
src/cfgparse.c
src/cli.c
src/flt_spoe.c
src/haproxy.c
src/mux_h2.c
src/stream.c