apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@rowe-clan.net>
Subject testpipe Win32 Failures(?)
Date Sat, 11 Feb 2006 20:00:56 GMT
I use the term failure loosely here :)

There are three sorts of win32 pipes...

Anonmyous pipes, by far the most common, can only be entirely blocking,
or entirely nonblocking.  The current code fails when the user tries to
toggle this by returning APR_EINVAL from apr_file_pipe_timeout_set().
An arguement could be made for APR_ENOTIMPL, but that's really not true,
you can toggle the timeout on nonblocking sockets from one value to another.

Named pipes, can differ between the two ends.

Pipes can be 'polled' sort-of; but their poll operations don't have 1:1
correspondence to socket objects.  select() is straight out.

Loopback sockets can be used as faux-pipes, poll and select and all the
other goodness are all supported.

But the most common application for pipes is stdio to console apps, and those
generally do not expect a socket or any nonblocking file resource.  Many would
definately not handle this gracefully.

We can investigate cloning the pipe handle from blocking to nonblocking

But the question I have; is this a failure?  Should we add an expectation for
the <22> results, APR_EINVAL, for Win32 specifically?


View raw message