Commit 81ed8ac6 authored by Jeff Trawick's avatar Jeff Trawick
Browse files

ap_create_pipe was changed to return a pipe with both handles

blocking (previously, both handles were non-blocking).

ap_set_pipe_timeout() is now the only way to manipulate the
blocking state of the pipe.  Pass -1 for timeout to make it
blocking; pass 0 for timeout to make it non-blocking.

ap_block_pipe() is gone.

A few minor bugs were fixed along the way.

OS-specific notes:

non-Unix in general:

Only Unix/BeOS currently has the optimization to keep track of the blocking
state.  This is used to avoid syscalls as well as to handle ap_put_os_file(),
which is a case where we don't know the blocking state of the handle we are
given.

OS/2:

ap_set_pipe_timeout() with timeout value > 0: The code didn't play with
the blocking state before and it doesn't still.  I did add logic for special
timeout values 0 and -1 to play with the blocking state.

ap_create_pipe():  old logic didn't do anything with the blocking state
of the second handle; it still doesn't; hopefully it is blocking

pre-BONE BEOS:

old code to make a pipe non-blocking was a no-op; now it returns
APR_ENOTIMPL

BONE: old code to make a pipe non-blocking; it passed &zero as the
parm to FIONBIO instead of &one; this bug was fixed

Win32:

The pipe was always created blocking before; no change

previously, ap_setprocattr_io() ignored the blocking flag; now it
respects it like other platforms and calls ap_set_pipe_timeout(p,0)
on appropriate pipe handles (Bill Stoddard was just working in
ap_set_pipe_timeout(), so I presume this is golden)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85637 13f79535-47bb-0310-9956-ffa450edef68
parent f86e6ccb
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment