summary refs log tree commit diff
path: root/src/rt
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2013-07-17 18:38:12 -0700
committerBrian Anderson <banderson@mozilla.com>2013-07-22 14:16:52 -0700
commit4beda4e582e4fe008aaf866a5f3ad6a20dec9876 (patch)
tree37cb85c47b61b5659ea02c2432399ec6d9fdf0c6 /src/rt
parentf8c4d99df67d411d5f7b48823bc082d81cdfaa37 (diff)
downloadrust-4beda4e582e4fe008aaf866a5f3ad6a20dec9876.tar.gz
rust-4beda4e582e4fe008aaf866a5f3ad6a20dec9876.zip
std::rt: Stop using unstable::global in change_dir_locked
Diffstat (limited to 'src/rt')
-rw-r--r--src/rt/rust_builtin.cpp12
-rw-r--r--src/rt/rustrt.def.in2
2 files changed, 14 insertions, 0 deletions
diff --git a/src/rt/rust_builtin.cpp b/src/rt/rust_builtin.cpp
index 863e0a3a99e..4dde01d5f00 100644
--- a/src/rt/rust_builtin.cpp
+++ b/src/rt/rust_builtin.cpp
@@ -947,6 +947,18 @@ rust_get_exit_status_newrt() {
     return exit_status;
 }
 
+static lock_and_signal change_dir_lock;
+
+extern "C" CDECL void
+rust_take_change_dir_lock() {
+    global_args_lock.lock();
+}
+
+extern "C" CDECL void
+rust_drop_change_dir_lock() {
+    global_args_lock.unlock();
+}
+
 //
 // Local Variables:
 // mode: C++
diff --git a/src/rt/rustrt.def.in b/src/rt/rustrt.def.in
index 215673be120..e9e0f3b6949 100644
--- a/src/rt/rustrt.def.in
+++ b/src/rt/rustrt.def.in
@@ -268,3 +268,5 @@ rust_take_global_args_lock
 rust_drop_global_args_lock
 rust_set_exit_status_newrt
 rust_get_exit_status_newrt
+rust_take_change_dir_lock
+rust_drop_change_dir_lock
\ No newline at end of file