On Mon, Jan 10, 2011 at 22:22, Neil McKee <[email protected]> wrote:
> I pushed changes to:
>
> 1.  use PIPE_BUF from limits.h (if available).
> 2.  use apr_file_pipe_timeout_set(<pipe>, 0) on both ends -- just to make 
> absolutely certain that the writes from the critical section are always 
> non-blocking.
> 3.  use apr_poll() at the read end of the pipe to get my read timeout back.
> 4.  make sure any critical-section logging is with APLOG_DEBUG.
>
> http://code.google.com/p/mod-sflow/source/browse/trunk/mod_sflow.c?r=17

Much better, Neil.

> setting the "timeout" to 0 seems to be equivalent to setting O_NONBLOCK?

Even better, apr_file_pipe_timeout_set() with timeout > -1 sets O_NONBLOCK.

> I don't see any functions for assembling an apr_pollfd_t object

There indeed aren't, creating them by hand is the (only) way to go.

Reply via email to