haproxy/src
Willy Tarreau 39ebef82aa BUG/MINOR: poll: the I/O handler was called twice for polled I/Os
When a polled I/O event is detected, the event is added to the updates
list and the I/O handler is called. Upon return, if the event handler
did not experience an EAGAIN, the event remains in the updates list so
that it will be processed later. But if the event was already in the
spec list, its state is updated and it will be called again immediately
upon exit, by fd_process_spec_events(), so this creates unfairness
between speculative events and polled events.

So don't call the I/O handler upon I/O detection when the FD already is
in the spec list. The fd events are still updated so that the spec list
is up to date with the possible I/O change.
2012-12-14 00:17:03 +01:00
..
acl.c BUG/MEDIUM: acl: make prue_acl_expr() correctly free ACL expressions upon exit 2012-11-24 00:02:14 +01:00
appsession.c MEDIUM: make the trash be a chunk instead of a char * 2012-10-29 16:57:30 +01:00
arg.c MEDIUM: sample: pass an empty list instead of a null for fetch args 2012-10-19 19:49:09 +02:00
auth.c CLEANUP: auth: make the code build again with DEBUG_AUTH 2012-05-10 23:25:35 +02:00
backend.c CLEANUP: backend: use the same tproxy address selection code for servers and backends 2012-12-09 10:06:01 +01:00
base64.c [MINOR] add encode/decode function for 30-bit integers from/to base64 2010-10-30 19:04:33 +02:00
buffer.c BUILD: buffer: fix another isprint() warning on solaris 2012-11-26 00:57:40 +01:00
cfgparse.c MINOR: config: improve error checking on TCP stick-table tracking 2012-12-12 00:25:44 +01:00
channel.c OPTIM: channel: inline channel_forward's fast path 2012-10-26 01:08:01 +02:00
checks.c MEDIUM: connection: add an error code in connections 2012-12-03 14:22:13 +01:00
chunk.c CLEANUP: replace chunk_printf() with chunk_appendf() 2012-10-29 16:14:26 +01:00
compression.c BUG/MEDIUM: compression: does not forward trailers 2012-11-23 11:12:33 +01:00
connection.c BUG/MINOR: connection: remove a few synchronous calls to polling updates 2012-12-10 17:03:52 +01:00
cttproxy.c CLEANUP: cttproxy: remove a warning on undeclared close() 2012-10-05 22:18:07 +02:00
dumpstats.c MINOR: stats: add a few more information on session dump 2012-12-08 17:48:47 +01:00
ev_epoll.c BUG/MINOR: poll: the I/O handler was called twice for polled I/Os 2012-12-14 00:17:03 +01:00
ev_kqueue.c BUG/MINOR: poll: the I/O handler was called twice for polled I/Os 2012-12-14 00:17:03 +01:00
ev_poll.c BUG/MINOR: poll: the I/O handler was called twice for polled I/Os 2012-12-14 00:17:03 +01:00
ev_select.c BUG/MINOR: poll: the I/O handler was called twice for polled I/Os 2012-12-14 00:17:03 +01:00
fd.c BUG: polling: don't skip polled events in the spec list 2012-11-12 01:57:14 +01:00
freq_ctr.c [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.c BUILD: stream_interface: remove si_fd() and its references 2012-11-11 20:53:29 +01:00
haproxy.c BUG/MEDIUM: comp: DEFAULT_MAXZLIBMEM was expressed in bytes and not megabytes 2012-12-03 14:22:12 +01:00
hdr_idx.c OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
i386-linux-vsys.c MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
lb_chash.c [MEDIUM] hash: add support for an 'avalanche' hash-type 2010-11-29 07:28:16 +01:00
lb_fas.c CLEANUP: lb_first: add reference to a paper describing the original idea 2012-04-07 09:08:45 +02:00
lb_fwlc.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwrr.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_map.c [BUG] url_param hash may return a down server 2010-03-12 06:22:16 +01:00
listener.c MINOR: listeners: make the accept loop more robust when maxaccept==0 2012-11-23 20:22:10 +01:00
log.c BUG: connection: fix typo in previous commit 2012-11-12 01:14:56 +01:00
memory.c MEDIUM: memory: add the ability to poison memory at run time 2012-05-08 21:28:16 +02:00
peers.c CLEANUP: session: use an array for the stick counters 2012-12-09 15:57:16 +01:00
pipe.c BUILD/MINOR: silent a build warning in src/pipe.c (fcntl) 2011-10-24 17:09:22 +02:00
proto_http.c MINOR: http: add the "base32+src" fetch method. 2012-12-09 14:53:32 +01:00
proto_tcp.c BUG/MINOR: connection: remove a few synchronous calls to polling updates 2012-12-10 17:03:52 +01:00
proto_uxst.c MINOR: standard: make memprintf() support a NULL destination 2012-09-24 10:53:16 +02:00
protocol.c REORG: split "protocols" files into protocol and listener 2012-09-15 22:29:32 +02:00
proxy.c BUG: proxy: fix server name lookup in get_backend_server() 2012-11-15 00:15:18 +01:00
queue.c MAJOR: connection: replace struct target with a pointer to an enum 2012-11-12 00:42:33 +01:00
raw_sock.c BUG/MAJOR: raw_sock: must check error code on hangup 2012-12-07 00:01:33 +01:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c [MINOR] prepare req_*/rsp_* to receive a condition 2010-01-28 18:10:50 +01:00
sample.c MEDIUM: remove remains of BUFSIZE in HTTP auth and sample conversions 2012-10-29 20:44:36 +01:00
server.c MEDIUM: server: move parsing of keyword "id" to server.c 2012-10-10 17:51:05 +02:00
session.c CLEANUP: session: use an array for the stick counters 2012-12-09 15:57:16 +01:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
shctx.c MEDIUM: ssl: manage shared cache by blocks for huge sessions. 2012-12-04 10:56:56 +01:00
signal.c MINOR: signal: really ignore signals configured with no handler 2012-10-04 22:26:09 +02:00
ssl_sock.c BUILD: ssl: NAME_MAX is not portable, use MAXPATHLEN instead 2012-12-06 11:36:59 +01:00
standard.c MINOR: log: add '%Tl' to log-format 2012-10-29 11:55:26 +01:00
stick_table.c BUG/MEDIUM: stick-tables: conversions to strings were broken in dev13 2012-12-09 11:10:30 +01:00
stream_interface.c BUG/MINOR: connection: remove a few synchronous calls to polling updates 2012-12-10 17:03:52 +01:00
task.c [OPTIM] task: don't scan the run queue if we know it's empty 2011-09-10 20:08:49 +02:00
time.c MINOR: Date and time fonctions that don't use snprintf 2012-02-09 17:03:28 +01:00
trace.c MINOR: add a new function call tracer for debugging purposes 2012-05-26 00:12:37 +02:00
uri_auth.c [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00