MAJOR: threads/applet: Handle multithreading for applets
authorEmeric Brun <ebrun@haproxy.com>
Mon, 19 Jun 2017 10:38:55 +0000 (12:38 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 31 Oct 2017 12:58:31 +0000 (13:58 +0100)
commit1138fd0c576d8ac9ba28a57da3463de72022bea5
treeb5b2f1f466d7c55e65b36fa391a6a1cb1db7ff4b
parent272e252e61cbb34959d111ed067caf2cf0d11f4a
MAJOR: threads/applet: Handle multithreading for applets

A global lock has been added to protect accesses to the list of active
applets. A process mask has also been added on each applet. Like for FDs and
tasks, it is used to know which threads are allowed to process an
applet. Because applets are, most of time, linked to a session, it should be
sticky on the same thread. But in all cases, it is the responsibility of the
applet handler to lock what have to be protected in the applet context.
include/common/hathreads.h
include/proto/applet.h
include/proto/stream_interface.h
src/applet.c
src/flt_spoe.c
src/hlua.c
src/peers.c