haproxy/include/common
Willy Tarreau 7f0165e399 MEDIUM: memory: make the pool cache an array and not a thread_local
Having a thread_local for the pool cache is messy as we need to
initialize all elements upon startup, but we can't until the threads
are created, and once created it's too late. For this reason, the
allocation code used to check for the pool's initialization, and
it was the release code which used to detect the first call and to
initialize the cache on the fly, which is not exactly optimal.

Now that we have initcalls, let's turn this into a per-thread array.
This array is initialized very early in the boot process (STG_PREPARE)
so that pools are always safe to use. This allows to remove the tests
from the alloc/free calls.

Doing just this has removed 2.5 kB of code on all cumulated pool_alloc()
and pool_free() paths.
2018-11-26 19:50:32 +01:00
..
accept4.h
base64.h
buf.h BUILD: buffers: buf.h requires unistd to get ssize_t on libmusl 2018-11-26 19:49:21 +01:00
buffer.h MEDIUM: memory: make the pool cache an array and not a thread_local 2018-11-26 19:50:32 +01:00
cfgparse.h MINOR: initcall: use initcalls for section parsers 2018-11-26 19:50:32 +01:00
chunk.h MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
compat.h MINOR: compat: automatically detect support for crypt_r() 2018-10-29 19:14:14 +01:00
compiler.h BUILD: compiler: rename __unreachable() to my_unreachable() 2018-10-20 17:45:48 +02:00
config.h MINOR: fd: centralize poll timeout computation in compute_poll_timeout() 2018-10-17 19:59:43 +02:00
debug.h
defaults.h MEDIUM: ssl: add support for ciphersuites option for TLSv1.3 2018-10-08 19:20:13 +02:00
epoll.h
errors.h
h2.h
hash.h
hathreads.h MINOR: threads: add new macros to declare self-initializing locks 2018-11-26 19:50:32 +01:00
hpack-dec.h
hpack-enc.h
hpack-huff.h
hpack-tbl.h BUG/CRITICAL: hpack: fix improper sign check on the header index value 2018-09-20 11:45:56 +02:00
http-hdr.h MINOR: http: add http_hdr_del() to remove a header from a list 2018-09-14 17:40:35 +02:00
http.h MINOR: http: Add standalone functions to parse a start-line or a header 2018-11-18 21:45:49 +01:00
initcall.h MINOR: initcall: introduce a way to register init functions to call at boot 2018-11-26 19:50:32 +01:00
ist.h BUILD: buffers: buf.h requires unistd to get ssize_t on libmusl 2018-11-26 19:49:21 +01:00
istbuf.h
memory.h MEDIUM: memory: make the pool cache an array and not a thread_local 2018-11-26 19:50:32 +01:00
mini-clist.h
namespace.h MINOR: namespaces: don't build namespace.c if disabled 2018-11-12 19:15:15 +01:00
net_helper.h
regex.h
splice.h
standard.h CLEANUP: Fix typos in the standard subsystem 2018-11-18 22:26:42 +01:00
syscall.h
template.h
ticks.h
time.h MINOR: poller: move the call of tv_update_date() back to the pollers 2018-11-22 18:57:37 +01:00
tools.h
uri_auth.h
version.h
xref.h