rust/src/libstd
Aaron Turon 903c5a8f69 Disable at_exit handlers
The [final step](https://github.com/rust-lang/rust/pull/19654) of
runtime removal changes the threading/process model so that the process
shuts down when the main thread exits. But several shared resources,
like the helper thread for timeouts, are shut down when the main thread
exits (but before the process ends), and they are not prepared to be
used after shut down, but other threads may try to access them during
the shutdown sequence of the main thread.

As an interim solution, the `at_exit` cleanup routine is simply skipped.

Ultimately, these resources should be made to safely handle asynchronous
shutdown, usually by panicking if called from a detached thread when the
main thread is ending.

See issue for details https://github.com/rust-lang/rust/issues/20012

This is a [breaking-change] for anyone relying on `at_exit`.
2014-12-18 23:35:53 -08:00
..
collections remove TreeMap, TreeSet, TrieMap, TrieSet, LruCache. deprecate EnumSet's std re-export 2014-12-18 16:20:31 -05:00
comm Delete rest of rustrt 2014-12-18 23:35:52 -08:00
io Delete rest of rustrt 2014-12-18 23:35:52 -08:00
num librustc: Always parse macro!()/macro![] as expressions if not 2014-12-18 12:09:07 -05:00
path Revise std::thread API to join by default 2014-12-18 23:31:52 -08:00
rand Revise std::thread API to join by default 2014-12-18 23:31:52 -08:00
rt Disable at_exit handlers 2014-12-18 23:35:53 -08:00
sync Revise std::thread API to join by default 2014-12-18 23:31:52 -08:00
sys Rebasing fixes. 2014-12-18 23:35:53 -08:00
thread_local Revise std::thread API to join by default 2014-12-18 23:31:52 -08:00
time librustc: Always parse macro!()/macro![] as expressions if not 2014-12-18 12:09:07 -05:00
ascii.rs librustc: Always parse macro!()/macro![] as expressions if not 2014-12-18 12:09:07 -05:00
bitflags.rs auto merge of #19448 : japaric/rust/binops-by-value, r=nikomatsakis 2014-12-15 22:11:44 +00:00
c_str.rs Revise std::thread API to join by default 2014-12-18 23:31:52 -08:00
c_vec.rs Mostly rote conversion of proc() to move|| (and occasionally Thunk::new) 2014-12-14 04:21:56 -05:00
dynamic_lib.rs std: Collapse SlicePrelude traits 2014-12-14 19:03:56 -08:00
error.rs Utilize fewer reexports 2014-12-05 18:13:04 -05:00
failure.rs std: Move the panic flag to its own thread local 2014-12-18 23:35:52 -08:00
fmt.rs core: remove the dead function fmt::argumentstr. 2014-12-08 09:14:21 +02:00
hash.rs rollup merge of #19902: alexcrichton/second-pass-mem 2014-12-17 11:50:29 -08:00
lib.rs Revise std::thread API to join by default 2014-12-18 23:31:52 -08:00
macros.rs Revise std::thread API to join by default 2014-12-18 23:31:52 -08:00
os.rs Revise std::thread API to join by default 2014-12-18 23:31:52 -08:00
prelude.rs std: Collapse SlicePrelude traits 2014-12-14 19:03:56 -08:00
rtdeps.rs libs: merge librustrt into libstd 2014-12-18 23:31:34 -08:00
task.rs Revise std::thread API to join by default 2014-12-18 23:31:52 -08:00
thread.rs std: Move the panic flag to its own thread local 2014-12-18 23:35:52 -08:00
thunk.rs Revise std::thread API to join by default 2014-12-18 23:31:52 -08:00