in reply to Re: open3 but for n file descriptors
in thread open3 but for n file descriptors
As mentioned I would prefer not to use IPC::Run because IPC::Run is not installed on many of the old distributions supported by GNU Parallel, whereas open3 is. There is typically a reason why people do not upgrade the old systems, and it is therefore unlikely that IPC::Run will be installed.
The PID is currently the way I keep track of which process was started when, so when using --keep-order, I can make sure the output from the dead children is printed in the correct order. But with a bit of recoding this could probably be changed.
I had hoped wrapping open3 with more filedescriptors would be as easy as this meta-code for fd3:
I know how to make most of the meta-code, but connect_filedescriptor I do not know how to make.# Record fd3 for later use open($orig_fd{3},">&=",3); for $id (1..10) { open($child{$id,3},">",$tmpfile{$i}); # make $child{$id,3} file descriptor 3 for me and all future childre +n connect_filedescriptor(3,$child{$id,3}); # start the child open3(...) } sub reaper { # When a child dies seek $child{$id,3},0,0; # Print the captured fd3 to the parent's original fd3 print $orig_fd{3} <$child{$id,3}>; close $child{$id,3}; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: open3 but for n file descriptors
by tange (Initiate) on Jul 20, 2013 at 09:19 UTC |