]> git.lizzy.rs Git - rust.git/commit
std: Fix a TLS destructor bug on OSX
authorAlex Crichton <alex@alexcrichton.com>
Sat, 11 Jul 2015 00:46:20 +0000 (17:46 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Sun, 12 Jul 2015 22:08:40 +0000 (15:08 -0700)
commit987dc84b521a9be98099b504aa91b7baa9d22409
treea0eaf5159ca98d9e1c38ed1eb411176c581c3335
parentfe0b5c0d38fc937ff6cf3623c4277b0463b17748
std: Fix a TLS destructor bug on OSX

TLS tests have been deadlocking on the OSX bots for quite some time now and this
commit is the result of the investigation into what's going on. It turns out
that a value in TLS which is being destroyed (e.g. the destructor is run) can be
reset back to the initial state **while the destructor is running** if TLS is
re-accessed.

To fix this we stop calling drop_in_place on OSX and instead move the data to a
temporary location on the stack.
src/libstd/thread/local.rs
src/test/run-pass/down-with-thread-dtors.rs [new file with mode: 0644]