<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/sys/windows/thread.rs, branch 1.26.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.26.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.26.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2018-01-31T19:41:29+00:00</updated>
<entry>
<title>Use a range to identify SIGSEGV in stack guards</title>
<updated>2018-01-31T19:41:29+00:00</updated>
<author>
<name>Josh Stone</name>
<email>jistone@redhat.com</email>
</author>
<published>2018-01-31T19:41:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=55b54a999bcdb0b1c1f42b6e1ae670beb0717086'/>
<id>urn:sha1:55b54a999bcdb0b1c1f42b6e1ae670beb0717086</id>
<content type='text'>
Previously, the `guard::init()` and `guard::current()` functions were
returning a `usize` address representing the top of the stack guard,
respectively for the main thread and for spawned threads.  The `SIGSEGV`
handler on `unix` targets checked if a fault was within one page below
that address, if so reporting it as a stack overflow.

Now `unix` targets report a `Range&lt;usize&gt;` representing the guard
memory, so it can cover arbitrary guard sizes.  Non-`unix` targets which
always return `None` for guards now do so with `Option&lt;!&gt;`, so they
don't pay any overhead.

For `linux-gnu` in particular, the previous guard upper-bound was
`stackaddr + guardsize`, as the protected memory was *inside* the stack.
This was a glibc bug, and starting from 2.27 they are moving the guard
*past* the end of the stack.  However, there's no simple way for us to
know where the guard page actually lies, so now we declare it as the
whole range of `stackaddr ± guardsize`, and any fault therein will be
called a stack overflow.  This fixes #47863.
</content>
</entry>
<entry>
<title>std: Avoid use of `libc` in portable modules</title>
<updated>2017-11-09T15:56:44+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2017-11-01T20:04:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5c3fe111d4a6e72f0461320f5166bcd6aaf2f37f'/>
<id>urn:sha1:5c3fe111d4a6e72f0461320f5166bcd6aaf2f37f</id>
<content type='text'>
This commit removes usage of the `libc` crate in "portable" modules like
those at the top level and `sys_common`. Instead common types like `*mut
u8` or `u32` are used instead of `*mut c_void` or `c_int` as well as
switching to platform-specific functions like `sys::strlen` instead of
`libc::strlen`.
</content>
</entry>
<entry>
<title>Merge branch 'master' into threadname</title>
<updated>2017-09-14T13:19:53+00:00</updated>
<author>
<name>Joshua Sheard</name>
<email>mail@jsheard.com</email>
</author>
<published>2017-09-14T13:19:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=597ac36547f5b135d55bd4cf26964762c8c4796f'/>
<id>urn:sha1:597ac36547f5b135d55bd4cf26964762c8c4796f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move default stack min size to thread implementations</title>
<updated>2017-09-13T08:56:41+00:00</updated>
<author>
<name>Tobias Schaffner</name>
<email>tschaff@genua.de</email>
</author>
<published>2017-09-09T09:09:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b2b50635172254777d16d0fc6112e6d5b68b63f2'/>
<id>urn:sha1:b2b50635172254777d16d0fc6112e6d5b68b63f2</id>
<content type='text'>
The default min stack size value is smaller on l4re and therefore
this value has to be different depending on the platform.
</content>
</entry>
<entry>
<title>Implement named threads on Windows</title>
<updated>2017-09-06T19:40:34+00:00</updated>
<author>
<name>Joshua Sheard</name>
<email>mail@jsheard.com</email>
</author>
<published>2017-09-06T19:40:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8e80cee144f1a75ab902c3b64e58979b140b9f52'/>
<id>urn:sha1:8e80cee144f1a75ab902c3b64e58979b140b9f52</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: Handle OS errors when joining threads</title>
<updated>2017-08-27T02:36:46+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2017-08-27T02:36:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dc7c7ba0c9f401f5597a245e05ee9e8d760715d3'/>
<id>urn:sha1:dc7c7ba0c9f401f5597a245e05ee9e8d760715d3</id>
<content type='text'>
Also add to the documentation that the `join` method can panic.

cc #34971
cc #43539
</content>
</entry>
<entry>
<title>Use `#[prelude_import]` in `libstd`.</title>
<updated>2016-08-24T22:12:48+00:00</updated>
<author>
<name>Jeffrey Seyfried</name>
<email>jeffrey.seyfried@gmail.com</email>
</author>
<published>2016-08-22T19:47:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9a2c8783d91624261317316f996d8d2d09b7b6a4'/>
<id>urn:sha1:9a2c8783d91624261317316f996d8d2d09b7b6a4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixup #32476</title>
<updated>2016-03-26T08:12:05+00:00</updated>
<author>
<name>Manish Goregaokar</name>
<email>manishsmail@gmail.com</email>
</author>
<published>2016-03-26T05:55:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6c10866b0241b6f37f1f5e30eaed3ac316b63ea4'/>
<id>urn:sha1:6c10866b0241b6f37f1f5e30eaed3ac316b63ea4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix unsound behaviour with null characters in thread names (issue #32475)</title>
<updated>2016-03-25T05:14:03+00:00</updated>
<author>
<name>David Henningsson</name>
<email>diwic@ubuntu.com</email>
</author>
<published>2016-03-25T04:46:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=78495d5082f51a2737619824548c9f2407b12a2b'/>
<id>urn:sha1:78495d5082f51a2737619824548c9f2407b12a2b</id>
<content type='text'>
Previously, the thread name (&amp;str) was converted to a CString in the
new thread, but outside unwind::try, causing a panic to continue into FFI.

This patch changes that behaviour, so that the panic instead happens
in the parent thread (where panic infrastructure is properly set up),
not the new thread.

This could potentially be a breaking change for architectures who don't
support thread names.

Signed-off-by: David Henningsson &lt;diwic@ubuntu.com&gt;
</content>
</entry>
<entry>
<title>Fix warnings during tests</title>
<updated>2016-01-26T17:29:28+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-01-23T07:49:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cb343c33acf0f9833d8d6eb637234acf4321976b'/>
<id>urn:sha1:cb343c33acf0f9833d8d6eb637234acf4321976b</id>
<content type='text'>
The deny(warnings) attribute is now enabled for tests so we need to weed out
these warnings as well.
</content>
</entry>
</feed>
