Files
rust/src/libstd
Alex Crichton c1149edf7a std: Fix inheriting standard handles on windows
Currently if a standard I/O handle is set to inherited on Windows, no action is
taken and the slot in the process information description is set to
`INVALID_HANDLE_VALUE`. Due to our passing of `STARTF_USESTDHANDLES`, however,
this means that the handle is actually set to nothing and if a child tries to
print it will generate an error.

This commit fixes this behavior by explicitly creating stdio handles to be
placed in these slots by duplicating the current process's I/O handles. This is
presumably what previously happened silently by using a file-descriptor-based
implementation instead of a `HANDLE`-centric implementation.

Along the way this cleans up a lot of code in `Process::spawn` for Windows by
ensuring destructors are always run, using more RAII, and limiting the scope of
`unsafe` wherever possible.
2015-04-29 08:01:16 -07:00
..
2015-04-21 12:02:12 +02:00
2015-03-15 09:08:21 -07:00
2015-04-25 22:33:19 +05:30
2015-02-11 14:49:07 -08:00
2015-01-23 21:48:20 -08:00