/[Apache-SVN]
ViewVC logotype

Revision 1809299


Jump to revision: Previous Next
Author: ylavic
Date: Fri Sep 22 10:55:22 2017 UTC (6 years, 8 months ago)
Changed paths: 4
Log Message:
Merge r1802875 from trunk:

event: Avoid possible blocking in the listener thread when shutting down
connections. PR 60956.

start_lingering_close_nonblocking() now puts connections in defer_linger_chain
which is emptied by any worker thread (all atomically) after its usual work,
hence any possibly blocking flush and lingering close run outside the listener.

The listener may create a dedicated worker if it fills defer_linger_chain or
while it's not empty, calling push2worker with a NULL cs.

The state machine in process_socket() is slighly modified to be able to enter
with CONN_STATE_LINGER directly w/o clogging_input_filters to interfer.

New abort_socket_nonblocking() allows to reset connections when nonblocking is
required and we can't do much about the connection anymore, nor we want the
system to linger on its own after close().

Many thanks to Stefan Priebe for his heavy testing on many event's changes!


Submitted by: ylavic
Reviewed by: ylavic, jim, icing


Changed paths

Path Details
Directoryhttpd/httpd/branches/2.4.x/ modified , props changed
Directoryhttpd/httpd/branches/2.4.x/CHANGES modified , text changed
Directoryhttpd/httpd/branches/2.4.x/STATUS modified , text changed
Directoryhttpd/httpd/branches/2.4.x/server/mpm/event/event.c modified , text changed

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26