rust/src/libstd/rt
bors eb86913dcf auto merge of #12505 : alexcrichton/rust/fix-stack-overflow, r=brson
The printing of the error message on stack overflow had two sometimes false
assumptions previously. The first is that a local task was always available (it
called Local::take) and the second is that it used `println!` instead of
manually writing.

The first assumption isn't necessarily true because while stack overflow will
likely only be detected in situations that a local task is available, it's not
guaranteed to always be in TLS. For example, during a `println!` call a task
may be blocking, causing it to be unavailable. By using Local::try_take(), we
can be resilient against these occurrences.

The second assumption could lead to odd behavior because the stdout logger can
be overwritten to run arbitrary code. Currently this should be possible, but the
utility is much diminished because a stack overflow translates to an abort()
instead of a failure.
2014-02-25 19:21:32 -08:00
..
args.rs std: Rename unstable::mutex::Mutex to StaticNativeMutex. 2014-02-16 10:13:56 +11:00
at_exit_imp.rs Move replace and swap to std::mem. Get rid of std::util 2014-02-11 05:21:35 +08:00
crate_map.rs Add a method of manually specifying the crate map 2014-02-25 09:22:24 -08:00
env.rs Register new snapshots 2014-02-14 22:55:20 -08:00
global_heap.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
local_heap.rs std: Remove unstable::lang 2014-02-23 01:47:05 -08:00
local_ptr.rs
local.rs
logging.rs
macros.rs
mod.rs std: Move unstable::stack to rt::stack 2014-02-23 01:47:08 -08:00
rtio.rs Roll std::run into std::io::process 2014-02-23 21:51:17 -08:00
stack.rs std: Tweak stack overflow printing for robustness 2014-02-25 16:51:52 -08:00
task.rs Spellcheck library docs. 2014-02-18 08:05:35 +11:00
thread_local_storage.rs
thread.rs std: Move unstable::stack to rt::stack 2014-02-23 01:47:08 -08:00
unwind.rs std: Remove unstable::lang 2014-02-23 01:47:05 -08:00
util.rs std: Move intrinsics to std::intrinsics. 2014-02-23 01:07:53 -08:00