]> granicus.if.org Git - apache/commit
Extend the socket callbacks in event to allow a timeout on the I/O callback.
authorEric Covener <covener@apache.org>
Sun, 11 May 2014 20:41:45 +0000 (20:41 +0000)
committerEric Covener <covener@apache.org>
Sun, 11 May 2014 20:41:45 +0000 (20:41 +0000)
commitd758951456f57f3496aa4d7855a043eb41f74f07
treea526e108dd14409104194998be66505467a7ed05
parent8b7d9aa14281bad40c11a446f3a617296d46d1dc
Extend the socket callbacks in event to allow a timeout on the I/O callback.
When a socket callback has a timeout, an associated timer event is used to
remove the sockets from the pollset and call a timeout function.

* This includes a noteworthy change to the main event loop. Previously,
we would call epoll, then process the timer events, then iterate through the
poll results. After this patch, the timer events are processed before the poll()
a _non-queued_ action can change the pollset conents (a users timed callback
function conversely could easily sit in a queue while the main thread continues
down into epoll)

* timer events can now have sockets associated with them, those sockets are
removed from the pollset when the timer event fires w/o a queue to the worker.

* timer events now have a canceled flag that can be toggled without locking
the timer list.

* Drop the severity of some wstunnel messages from DEBUG to TRACE1

* Lift the restriction on using asynchronous websockets connections but having
an idle timeout

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1593857 13f79535-47bb-0310-9956-ffa450edef68
CHANGES
docs/manual/mod/mod_proxy_wstunnel.xml
include/ap_mmn.h
include/ap_mpm.h
include/mpm_common.h
modules/proxy/mod_proxy_wstunnel.c
server/mpm/event/event.c
server/mpm/event/fdqueue.h
server/mpm_common.c