What exactly does PROP_IPC (fd_INTERPROCESSABLE in the source) permit?
Consider this usage:
object stdout = Stdio.File();
Process.create_process(cmd, (["stdout": stdout->pipe()]);
Is this at risk of failing, where stdout->pipe(Stdio.PROP_IPC) would succeed?
I can't find anything that indicates exactly what "IPC" means, and
whether using one end of a pipe for a process's standard stream counts
as IPC. It seems like it ought to, but the Pike standard library isn't
consistent about requesting it (see Sql.pmod/rsql.pike:36,
Git.pmod/Export.pike:46, and githelper.pike:60 from the companion
repo).
In _Stdio/file.c, file_pipe(), checks are made for a pipe (if
PIPE_CAPABILITIES is defined), a socketpair, or a socketpair_ultra.
All three of these have fd_INTERPROCESSABLE set, so far as I can tell.
Does that imply that PROP_IPC is effectively always implied when
creating a pipe?
ChrisA