If a soft timeout (or lingerout) occurs while trying to flush a
buffer or write inside buff.c or fread'ing from a CGI's output, then the timeout would be ignored. This fix is rather nasty, since what we would really like to do is flush the output if we timeout on a read, but we can't do that without differentiating between read and write timeouts, and we can't do that without rewriting most of the server. What we really need is a global (per-thread) timeout that sets a single flag, and then have all of our code check for that flag and recover gracefully based upon what it was trying to do at the time. However, that might be subject to race conditions as well, so we might just need to replace all of our generic timeouts with more sophisticated timeouts, each with its own sigsetjmp handling. Something to remember for 2.0. Reviewed by: Randy Terbush, Chuck Murcko, Dean Gaudet git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@77950 13f79535-47bb-0310-9956-ffa450edef68
Please register or sign in to comment