On Tue, Jan 30, 2001 at 03:35:27PM -0500, Rocco Caputo wrote:
> On Mon, 29 Jan 2001 22:56:23 -0500, barries wrote:
> >
> >In fact, I would be happy to port IPC::Run to Event or POE were either
> >cross platform wrt events on filehandles of all stripes and timers.  I
> >gave some thought to doing that anyway (see archives for spoor) and
> >there's been no demand from anyone for it, so never bothered.
> 
> There's a real need for event-driven IPC::Run.

On Win32, you mean?  On select() capable platforms, IPC::Run is both
scriptable, vaguely like Expect, and/or event driven.  By this I mean
you can call the event loop routine (pump()) or you can call run() or
finish() to go into the event loop until children are done.

> In response to requests, I added something similar to POE 0.1203 at
> the end of December.
> 
> My work-around for not being able to select() pipes on Win32 was a
> byproduct of writing portable pipe classes.  The classes try pipe(),
> socketpair() and finally fall back to IO::Socket::INET.  The last
> option makes conduits that seem to work fine with select() on MSWin32.
> I have no idea how well (or if) the fork/exec parts work, though.  For
> that matter, what about SIGCHLD?

All unexplored territory for me.  I considered using tcp sockets to/from
the child process for IPC::Run, and that's probably the fallback plan
for porting vcp to Win32 if the PerlIO select() or poll() effort fails.
Thanks for the suggestions, and...

> 
> POE::Pipe::OneWay and ::TwoWay will work without the rest of the
> library, and they make plain old filehandles via Symbol::gensym().
> Maybe they should be split out into a separate distribution?

Perhaps they should.  I wouldn't mind using them in IPC::Run on Win32,
again as a backup plan.

- Barrie

Reply via email to