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 Re: More migration of code from httpd to apr-util
Date Mon, 11 Jun 2001 17:30:59 GMT
From: <rbb@covalent.net>
Sent: Monday, June 11, 2001 10:58 AM


> > Which is also a requirement.  When we call namedpipe_create, we have to RETURN
> > SOMETHING!  Win32 will create a pipe handle (not the same as the read/write file
> > handle.)  Every (NT/2000) machine could Create or Connect to get that pipe handle.
> > But once that pipe  handle is closed, the pipe evaporates, they are not persistant.
> 
> Not to be contrary, but can't we handle this by registering a cleanup with
> the handle?  That way, the handle survives until we specifically clean it
> up, and we shouldn't have to change the API much.  Not saying this is the
> right way to go, I am just offering suggestions.

No, I don't think it's the right way.  I'd expect that we add a placeholder of
apr_namedpipe_t that contains the name of the pipe on Unix (and nothing more),
or the pipe name and handle on Win32.  Opaque, of course.

> > > I have been thinking of creating apr/rpc/...   to handle stuff like this.
> > > However, right now, we have named pipes.  They need to be implemented on
> > > more platforms, and that may require changing the API a bit, but please
> > > let's stick with what we have already.
> > >
> > > The only thing we can't do with named pipes today is communicate with
> > > different machines.  IMHO, calling any cross-machine communication medium
> > > a named pipe is just going to confuse any unix programmer.  Give it a
> > > different name.
> >
> > No, it effectively is a named pipe.  They *really* don't differ all that much.
> > The differences are in the naming rules, and Win9x compatibility.
> >
> > Implementors are just going to have to accept that 9x aren't Operating Systems
> > in today's sense, but consumer appliances/gaming consoles, so they have
> > significant drawbacks.  This does ***NOT*** imply I'm against getting httpd up
> > and running on Win9x!  It just means that the sort of advanced features that
> > cross-machine dce would implement can't be effectively targetted to Win9x, or
> > they must be coded around.
> 
> My problem with calling this a named pipe, is that Unix named pipes can't
> do cross-machine communication.  I think that if we call these things
> named pipes, then in people's (Unix programmer's) minds, there weill be
> limits that don't actually exist.  Yes, they can learn what we mean by
> named pipes, but why make it harder than it needs to be?

Pointing out that they 'can' communicate between machines does _NOT_ mean we would
actually implement that feature :-)  I'd suggest we plunge forward, with a return
type that lets us kill the pipe later (on Unix, that's nothing more than an 
rm namedpipe->name, no?  on Win32, closing the handle) and register a cleanup on
it, of course!

Bill



Mime
View raw message