On Sunday, 24 February 2013 at 14:44:51 UTC, Steven Schveighoffer
wrote:
On Sun, 24 Feb 2013 08:03:24 -0500, Jonas Drewsen
<[email protected]> wrote:
1, What about support for nonblocking wait(). It would be very
nice not to block the main thread if you really don't care
about waiting for the sub process but just want to be nice and
not create zombies.
Non-blocking wait was brought up. I think we can add it. It
would be non-blocking wait on specific processes though, I
think doing a wait for *any* process is a more difficult
problem to solve, and is not supported in the current
std.process. It may be something added later.
I saw that you have implemented this now - great!.
2, What about nonblocking read/writes or support for timing
out reads/writes at least. On linux you can select() on the
file descriptor but that is not supported on windows.
This is not an issue with std.process, but rather with File.
If File doesn't support non-blocking read/write, that is an
issue, but we should solve it for all streams, not just pipes.
Since File is just used to wrap the fd created in std.process it
is not possible for File to make this non-blocking since windows
doesn't have proper support for non-blocking fds that are not
sockets e.g. files or pipes. The recommended way to communicate
non-blocking between processes this way is to create a named pipe
and do waitformultiple objects on that.
/Jonas