<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/sys/windows/process.rs, branch 1.9.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.9.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.9.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2016-03-23T03:03:54+00:00</updated>
<entry>
<title>fix alignment</title>
<updated>2016-03-23T03:03:54+00:00</updated>
<author>
<name>Jorge Aparicio</name>
<email>japaricious@gmail.com</email>
</author>
<published>2016-03-22T22:58:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2628f3cc8f91a52d9dcc800afb6c4a7dc0c785e0'/>
<id>urn:sha1:2628f3cc8f91a52d9dcc800afb6c4a7dc0c785e0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>try! -&gt; ?</title>
<updated>2016-03-23T03:01:37+00:00</updated>
<author>
<name>Jorge Aparicio</name>
<email>japaricious@gmail.com</email>
</author>
<published>2016-03-23T03:01:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0f02309e4b0ea05ee905205278fb6d131341c41f'/>
<id>urn:sha1:0f02309e4b0ea05ee905205278fb6d131341c41f</id>
<content type='text'>
Automated conversion using the untry tool [1] and the following command:

```
$ find -name '*.rs' -type f | xargs untry
```

at the root of the Rust repo.

[1]: https://github.com/japaric/untry
</content>
</entry>
<entry>
<title>std: Don't always create stdin for children</title>
<updated>2016-03-09T01:45:44+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-02-12T18:28:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6afa32a2504fa90b48f74979bb4061cb397e9270'/>
<id>urn:sha1:6afa32a2504fa90b48f74979bb4061cb397e9270</id>
<content type='text'>
For example if `Command::output` or `Command::status` is used then stdin is just
immediately closed. Add an option for this so as an optimization we can avoid
creating pipes entirely.

This should help reduce the number of active file descriptors when spawning
processes on Unix and the number of active handles on Windows.
</content>
</entry>
<entry>
<title>std: Push process stdio setup in std::sys</title>
<updated>2016-02-10T17:28:48+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-02-04T19:10:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d15db1d392c9126ed5cc766753f08540c08a3626'/>
<id>urn:sha1:d15db1d392c9126ed5cc766753f08540c08a3626</id>
<content type='text'>
Most of this is platform-specific anyway, and we generally have to jump through
fewer hoops to do the equivalent operation on Windows. One benefit for Windows
today is that this new structure avoids an extra `DuplicateHandle` when creating
pipes. For Unix, however, the behavior should be the same.

Note that this is just a pure refactoring, no functionality was added or
removed.
</content>
</entry>
<entry>
<title>std: Lift out Windows' CreateProcess lock a bit</title>
<updated>2016-02-10T17:28:48+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-02-04T17:59:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=18f9a79c23da8e8920e4c944656b9945f3544337'/>
<id>urn:sha1:18f9a79c23da8e8920e4c944656b9945f3544337</id>
<content type='text'>
The function `CreateProcess` is not itself unsafe to call from many threads, the
article in question is pointing out that handles can be inherited by unintended
child processes. This is basically the same race as the standard Unix
open-then-set-cloexec race.

Since the intention of the lock is to protect children from inheriting
unintended handles, the lock is now lifted out to before the creation of the
child I/O handles (which will all be inheritable). This will ensure that we only
have one process in Rust at least creating inheritable handles at a time,
preventing unintended inheritance to children.
</content>
</entry>
<entry>
<title>std: Rename Stdio::None to Stdio::Null</title>
<updated>2016-02-10T17:28:48+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-02-04T17:53:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b8bd8f3d7c9c8a3187d6c80ab201f66dedee457c'/>
<id>urn:sha1:b8bd8f3d7c9c8a3187d6c80ab201f66dedee457c</id>
<content type='text'>
This better reflects what it's actually doing as we don't actually have an
option for "leave this I/O slot as an empty hole".
</content>
</entry>
<entry>
<title>std: Push Child's exit status to sys::process</title>
<updated>2016-02-10T17:28:48+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-02-04T02:09:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=627515a7ff4fe12084d7e95969bda307849b4d0e'/>
<id>urn:sha1:627515a7ff4fe12084d7e95969bda307849b4d0e</id>
<content type='text'>
On Unix we have to be careful to not call `waitpid` twice, but we don't have to
be careful on Windows due to the way process handles work there. As a result the
cached `Option&lt;ExitStatus&gt;` is only necessary on Unix, and it's also just an
implementation detail of the Unix module.

At the same time. also update some code in `kill` on Unix to avoid a wonky
waitpid with WNOHANG. This was added in 0e190b9a to solve #13124, but the
`signal(0)` method is not supported any more so there's no need to for this
workaround. I believe that this is no longer necessary as it's not really doing
anything.
</content>
</entry>
<entry>
<title>std: Refactor process spawning on Unix</title>
<updated>2016-02-10T17:28:48+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-10-31T18:09:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6c4198469025bf037f59d617c5b75229546ce68a'/>
<id>urn:sha1:6c4198469025bf037f59d617c5b75229546ce68a</id>
<content type='text'>
* Build up the argp/envp pointers while the `Command` is being constructed
  rather than only when `spawn` is called. This will allow better sharing of
  code between fork/exec paths.
* Rename `child_after_fork` to `exec` and have it only perform the exec half of
  the spawning. This also means the return type has changed to `io::Error`
  rather than `!` to represent errors that happen.
</content>
</entry>
<entry>
<title>std: Properly handle interior NULs in std::process</title>
<updated>2016-02-03T15:54:29+00:00</updated>
<author>
<name>Kamal Marhubi</name>
<email>kamal@marhubi.com</email>
</author>
<published>2016-01-15T20:29:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7c64bf1b9b6e8e97ab652a4922f1c0e68ebc77f0'/>
<id>urn:sha1:7c64bf1b9b6e8e97ab652a4922f1c0e68ebc77f0</id>
<content type='text'>
This reports an error at the point of calling `Command::spawn()` or one of
its equivalents.

Fixes https://github.com/rust-lang/rust/issues/30858
Fixes https://github.com/rust-lang/rust/issues/30862
</content>
</entry>
<entry>
<title>Auto merge of #31120 - alexcrichton:attribute-deny-warnings, r=brson</title>
<updated>2016-01-26T22:10:10+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2016-01-26T22:10:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4b615854f00ba17ad704155e1d3196c17a6edb62'/>
<id>urn:sha1:4b615854f00ba17ad704155e1d3196c17a6edb62</id>
<content type='text'>
This commit removes the `-D warnings` flag being passed through the makefiles to
all crates to instead be a crate attribute. We want these attributes always
applied for all our standard builds, and this is more amenable to Cargo-based
builds as well.

Note that all `deny(warnings)` attributes are gated with a `cfg(stage0)`
attribute currently to match the same semantics we have today
</content>
</entry>
</feed>
