From 63d18658c1d19bdcc4cad91ce808a9590b53f3d2 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 12 Mar 2013 12:23:24 -0700 Subject: rt: Add RUST_DEBUG_MEM to rust_env to avoid races --- src/libcore/rt/env.rs | 47 +++++++++++++++++++++++++++++++++++++++++++++++ src/libcore/rt/mod.rs | 1 + 2 files changed, 48 insertions(+) create mode 100644 src/libcore/rt/env.rs (limited to 'src/libcore/rt') diff --git a/src/libcore/rt/env.rs b/src/libcore/rt/env.rs new file mode 100644 index 00000000000..008e31777b0 --- /dev/null +++ b/src/libcore/rt/env.rs @@ -0,0 +1,47 @@ +// Copyright 2013 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +//! Runtime environment settings + +use libc::{size_t, c_char, c_int}; + +pub struct Environment { + /// The number of threads to use by default + num_sched_threads: size_t, + /// The minimum size of a stack segment + min_stack_size: size_t, + /// The maximum amount of total stack per task before aborting + max_stack_size: size_t, + /// The default logging configuration + logspec: *c_char, + /// Record and report detailed information about memory leaks + detailed_leaks: bool, + /// Seed the random number generator + rust_seed: *c_char, + /// Poison allocations on free + poison_on_free: bool, + /// The argc value passed to main + argc: c_int, + /// The argv value passed to main + argv: **c_char, + /// Print GC debugging info + debug_mem: bool +} + +/// Get the global environment settings +/// # Safety Note +/// This will abort the process if run outside of task context +pub fn get() -> &Environment { + unsafe { rust_get_rt_env() } +} + +extern { + fn rust_get_rt_env() -> &Environment; +} \ No newline at end of file diff --git a/src/libcore/rt/mod.rs b/src/libcore/rt/mod.rs index ea3878adbf0..a1a9884aeca 100644 --- a/src/libcore/rt/mod.rs +++ b/src/libcore/rt/mod.rs @@ -45,3 +45,4 @@ mod work_queue; mod stack; mod context; mod thread; +pub mod env; -- cgit 1.4.1-3-g733a5