apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <...@apache.org>
Subject Re: Tests hanging on Windows
Date Thu, 12 Dec 2002 16:26:35 GMT


On Thu, 12 Dec 2002, [UTF-8] Branko ─îibej wrote:

> rbb@apache.org wrote:
>
> >I've done more research.  Wow, this is ugly.  Basically, Windows doesn't
> >allow you to open anonymous pipes in a non-blocking mode.  That means that
> >it is impossible to timeout a pipe read/write.  Now for the good news.
> >There are two possible solutions.
> >
> >1)  Switch to using named pipes for platforms that support them.  This has
> >the advantage that we can open the pipe in overlapped mode, but it won't
> >work on older versions of Windows (9x, ME specifically).  This also means
> >that APR itself will have a need to get a temporary filename, because we
> >will need to have a name for the named pipe, but we can essentially forget
> >the name of the pipe immediately.
> >
> On NT-class systems (NT, 2000, XP), anonymous pipes are implemented on
> top of named pipes, using a unique pipe name. So there'd really be no
> difference if APR used this approach.

I actually knew that, but there is one difference.  When opening a named
pipe, you can pass in the overlapped flag, which you can't do when opening
an anonymous pipe.  :-(

> DOS-based Windows don't support named pipes, of course. Maybe it would
> be acceptable to return APR_ENOTIMPL if someone tried to open a
> non-blocking pipe on Win9x?

I could accept that.

BTW, I did more research still, and for apr_proc_create, we use named
pipes, so those can be non-blocking.  That essentially means that we have
the ability to do something inside APR that we aren't exposing to our
users.

Ryan


Mime
View raw message