about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2013-08-22 22:55:11 -0700
committerBrian Anderson <banderson@mozilla.com>2013-08-23 18:38:59 -0700
commit4541c6cfe3ee875020329f888c39ea75183b23d1 (patch)
treedd6b276b19f8e284a21a974f025e47ee3a1c47e9 /src/libstd
parentb4ef59db2fdf3d2f2c239a03f60569196a8df44d (diff)
downloadrust-4541c6cfe3ee875020329f888c39ea75183b23d1.tar.gz
rust-4541c6cfe3ee875020329f888c39ea75183b23d1.zip
rt: Remove exit_status helpers
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/rt/util.rs21
1 files changed, 5 insertions, 16 deletions
diff --git a/src/libstd/rt/util.rs b/src/libstd/rt/util.rs
index 1f29830aa04..f2ede8872c2 100644
--- a/src/libstd/rt/util.rs
+++ b/src/libstd/rt/util.rs
@@ -14,6 +14,7 @@ use libc;
 use option::{Some, None};
 use os;
 use str::StrSlice;
+use unstable::atomics::{AtomicInt, INIT_ATOMIC_INT, SeqCst};
 
 #[cfg(target_os="macos")]
 use unstable::running_on_valgrind;
@@ -129,24 +130,12 @@ memory and partly incapable of presentation to others.",
     }
 }
 
-pub fn set_exit_status(code: int) {
-    #[fixed_stack_segment]; #[inline(never)];
-    unsafe {
-        return rust_set_exit_status_newrt(code as libc::uintptr_t);
-    }
+static mut EXIT_STATUS: AtomicInt = INIT_ATOMIC_INT;
 
-    extern {
-        fn rust_set_exit_status_newrt(code: libc::uintptr_t);
-    }
+pub fn set_exit_status(code: int) {
+    unsafe { EXIT_STATUS.store(code, SeqCst) }
 }
 
 pub fn get_exit_status() -> int {
-    #[fixed_stack_segment]; #[inline(never)];
-    unsafe {
-        return rust_get_exit_status_newrt() as int;
-    }
-
-    extern {
-        fn rust_get_exit_status_newrt() -> libc::uintptr_t;
-    }
+    unsafe { EXIT_STATUS.load(SeqCst) }
 }