diff options
| author | Fenrir <[email protected]> | 2018-01-21 14:06:28 -0700 |
|---|---|---|
| committer | FenrirWolf <[email protected]> | 2018-01-21 19:16:33 -0700 |
| commit | 23be3f4885688e5e0011005e2295c75168854c0a (patch) | |
| tree | dd0850f9c73c489e114a761d5c0757f3dbec3a65 /ctr-std/src/sys_common/util.rs | |
| parent | Update CI for Rust nightly-2017-12-01 + other fixes (diff) | |
| download | archived-ctru-rs-23be3f4885688e5e0011005e2295c75168854c0a.tar.xz archived-ctru-rs-23be3f4885688e5e0011005e2295c75168854c0a.zip | |
Recreate ctr-std from latest nightly
Diffstat (limited to 'ctr-std/src/sys_common/util.rs')
| -rw-r--r-- | ctr-std/src/sys_common/util.rs | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/ctr-std/src/sys_common/util.rs b/ctr-std/src/sys_common/util.rs index aad0680..a391c7c 100644 --- a/ctr-std/src/sys_common/util.rs +++ b/ctr-std/src/sys_common/util.rs @@ -10,29 +10,8 @@ use fmt; use io::prelude::*; -use sync::atomic::{self, Ordering}; use sys::stdio::Stderr; - -pub fn min_stack() -> usize { - static MIN: atomic::AtomicUsize = atomic::AtomicUsize::new(0); - match MIN.load(Ordering::SeqCst) { - 0 => {} - n => return n - 1, - } - - // NOTE: We don't have env variable support on the 3DS so let's just use the - // default minimum - - // let amt = env::var("RUST_MIN_STACK").ok().and_then(|s| s.parse().ok()); - // let amt = amt.unwrap_or(2 * 1024 * 1024); - - let amt = 2 * 1024 * 1024; - - // 0 is our sentinel value, so ensure that we'll never see 0 after - // initialization has run - MIN.store(amt + 1, Ordering::SeqCst); - amt -} +use thread; pub fn dumb_print(args: fmt::Arguments) { let _ = Stderr::new().map(|mut stderr| stderr.write_fmt(args)); @@ -47,3 +26,9 @@ pub fn abort(args: fmt::Arguments) -> ! { dumb_print(format_args!("fatal runtime error: {}\n", args)); unsafe { ::sys::abort_internal(); } } + +#[allow(dead_code)] // stack overflow detection not enabled on all platforms +pub unsafe fn report_overflow() { + dumb_print(format_args!("\nthread '{}' has overflowed its stack\n", + thread::current().name().unwrap_or("<unknown>"))); +} |