Charles Lane <[EMAIL PROTECTED]> wrote:
> 

[Excellent discussion of suprocess comunication fixes elided.]

>         to avoid main process hangs.  EOFs removed, except for one at
>         child process termination, inserted by process completion code.

I'm a bit uneasy about this step, since it precludes the subprocess' use
of EOF (e.g. as an OOB delimiter between messages).  I agree that it's
not the usual case (spawn off a single command and exit), but it might be
nice to have the option of passing all I/O back to Perl ("raw mode", as
it were).


>     .   When child exits, AST routine reads any data written to its MBX
>         and discards, preventing hang of main process.

Looks like we're still stuck with a race, though, if several processes
inherited a single mbx.  I'm not sure how to fix this, though, short
of giving each subprocess a new set of mbxen, and having ASTs in the
parent copy from those to the "apparent" (i.e. inherited or specified
on the command line) PPFs of the subprocess.


> o   Error messages ("%SYSTEM-F-ABORT") at Perl exit should be supressed
>     in subprocesses.  They're still present for main process.

I'm also uneasy about this one.  It works nicely for the test suite, but
it's important that the subprocess mechanism remain as generally useful
as possible, and I'm uncomfortable with things that make it impossible to
get at some of the subprocess' output (e.g. the !AS replacements in an
error message).  The pragma option discussed in a later message sounds
nice, but I'd default it to "messages on"; we can shut it off for the
regression tests, since we control the environment.

> o   Default MBX size for communication with subprocesses should be
>     decreased, and be settable at runtime via logical.

Sounds good.  One caveat for programmers: if the $QIOs which hang on
full buffer happen to be the ASTs we're adding, the process'll end up
RWASTed -- we might make sure NORSWAIT is specified for these $QIOs.

Regards,
Charles Bailey  [EMAIL PROTECTED]

Reply via email to