haproxy/include/proto
Willy Tarreau a9786b6f04 MINOR: fd: pass the iocb and owner to fd_insert()
fd_insert() is currently called just after setting the owner and iocb,
but proceeding like this prevents the operation from being atomic and
requires a lock to protect the maxfd computation in another thread from
meeting an incompletely initialized FD and computing a wrong maxfd.
Fortunately for now all fdtab[].owner are set before calling fd_insert(),
and the first lock in fd_insert() enforces a memory barrier so the code
is safe.

This patch moves the initialization of the owner and iocb to fd_insert()
so that the function will be able to properly arrange its operations and
remain safe even when modified to become lockless. There's no other change
beyond the internal API.
2018-01-29 16:07:25 +01:00
..
acl.h MINOR: acl: Pass the ACLs as an explicit parameter of build_acl_cond 2017-10-31 11:36:12 +01:00
action.h MINOR: action: Add function to check rules using an action ACT_ACTION_TRK_* 2017-10-31 11:36:12 +01:00
applet.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
arg.h MINOR: sample: Moves ARGS underlying type from 32 to 64 bits. 2016-03-15 22:11:52 +01:00
auth.h MEDIUM: pattern: The match function browse itself the list or the tree. 2014-03-17 18:06:07 +01:00
backend.h MEDIUM: check: server states and weight propagation re-work 2017-09-05 15:23:16 +02:00
channel.h BUG/MEDIUM: stream-int: Don't loss write's notifs when a stream is woken up 2017-11-09 15:16:05 +01:00
checks.h BUILD: threads: Rename SPIN/RWLOCK macros using HA_ prefix 2017-11-07 11:10:24 +01:00
cli.h MINOR: cli: create new function cli_has_level() to validate permissions 2016-11-24 16:59:27 +01:00
compression.h REORG: filters: Prepare creation of the HTTP compression filter 2016-02-09 14:53:15 +01:00
connection.h MINOR: fd: pass the iocb and owner to fd_insert() 2018-01-29 16:07:25 +01:00
dns.h BUG/MINOR: dns: Don't try to get the server lock if it's already held. 2017-11-06 18:34:24 +01:00
fd.h MINOR: fd: pass the iocb and owner to fd_insert() 2018-01-29 16:07:25 +01:00
filters.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
flt_http_comp.h MAJOR: filters/http: Rewrite the HTTP compression as a filter 2016-02-09 14:53:15 +01:00
freq_ctr.h BUG/MAJOR: threads/freq_ctr: fix lock on freq counters. 2017-10-31 13:58:33 +01:00
frontend.h REORG/MAJOR: session: rename the "session" entity to "stream" 2015-04-06 11:23:56 +02:00
h1.h BUG/MEDIUM: h1: ensure the chunk size parser can deal with full buffers 2017-11-10 11:17:08 +01:00
hdr_idx.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
hlua_fcn.h MINOR: lua: add utility function for check boolean argument 2016-11-24 21:35:10 +01:00
hlua.h BUILD/MINOR: lua: ensure that hlua_ctx_destroy is properly defined 2015-06-17 20:18:54 +02:00
lb_chash.h [MEDIUM] backend: implement consistent hashing variation 2009-10-09 07:17:58 +02:00
lb_fas.h MEDIUM: backend: add the 'first' balancing algorithm 2012-02-21 22:27:27 +01:00
lb_fwlc.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_fwrr.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_map.h MEDIUM: threads/lb: Make LB algorithms (lb_*.c) thread-safe 2017-10-31 13:58:31 +01:00
listener.h BUG/MEDIUM: mworker: does not close inherited FD 2017-11-15 19:53:33 +01:00
log.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
map.h MINOR: samples: rename some struct member from "smp" to "data" 2015-08-20 17:13:46 +02:00
mux_pt.h MEDIUM: connection: start to introduce a mux layer between xprt and data 2017-10-31 18:03:23 +01:00
obj_type.h MINOR: connection: introduce conn_stream 2017-10-31 18:03:23 +01:00
openssl-compat.h MINOR: ssl: build with recent BoringSSL library 2017-10-24 19:57:16 +02:00
pattern.h BUG/MEDIUM: map/acl: fix unwanted flags inheritance. 2017-07-04 10:45:53 +02:00
payload.h REORG/MAJOR: session: rename the "session" entity to "stream" 2015-04-06 11:23:56 +02:00
peers.h MAJOR: peers: peers protocol version 2.0 2015-05-29 15:50:33 +02:00
pipe.h [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
port_range.h [MEDIUM] add support for binding to source port ranges during connect 2009-06-10 12:23:32 +02:00
proto_http.h MINOR: http: add a function to check request's cache-control header field 2017-12-22 17:56:17 +01:00
proto_tcp.h MINOR: protocols: register the ->add function and stop calling them directly 2017-09-15 11:49:52 +02:00
proto_udp.h CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept() 2016-04-14 11:18:22 +02:00
protocol.h MEDIUM: protocol: use a family array to index the protocol handlers 2015-02-28 23:12:31 +01:00
proxy.h MINOR/CLEANUP: proxy: rename "proxy" to "proxies_list" 2017-11-24 17:21:27 +01:00
queue.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
raw_sock.h CLEANUP: connection: unexport raw_sock and ssl_sock 2016-12-22 23:26:38 +01:00
sample.h MINOR: samples: Handle the type SMP_T_METH in smp_is_safe and smp_is_rw 2017-07-24 17:16:00 +02:00
server.h BUG/MINOR: dns: Fix SRV records with the new thread code. 2017-10-31 15:47:55 +01:00
session.h BUG/MEDIUM: peers: fix some track counter rules dont register entries for sync. 2017-11-29 19:16:22 +01:00
shctx.h MINOR: shctx: rename lock functions 2017-10-31 03:49:44 +01:00
signal.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
spoe.h BUG/MINOR: Wrong type used as argument for spoe_decode_buffer(). 2017-08-22 11:27:20 +02:00
ssl_sock.h MAJOR: threads/ssl: Make SSL part thread-safe 2017-10-31 13:58:32 +01:00
stats.h BUG/MINOR: stats: make field_str() return an empty string on NULL 2016-11-26 15:58:37 +01:00
stick_table.h BUILD: threads: Rename SPIN/RWLOCK macros using HA_ prefix 2017-11-07 11:10:24 +01:00
stream_interface.h MAJOR: connection : Split struct connection into struct connection and struct conn_stream. 2017-10-31 18:03:23 +01:00
stream.h BUG/MEDIUM: peers: fix some track counter rules dont register entries for sync. 2017-11-29 19:16:22 +01:00
task.h BUG/MEDIUM: lua/notification: memory leak 2017-12-10 19:38:58 +01:00
tcp_rules.h MINOR: action: Use trk_idx instead of tcp/http_trk_idx 2017-10-31 11:36:12 +01:00
template.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00
vars.h MINOR: vars: Add 'unset-var' action/converter 2016-11-09 22:57:01 +01:00