about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2013-08-09 17:28:27 -0700
committerBrian Anderson <banderson@mozilla.com>2013-08-09 17:28:27 -0700
commitb473ce304f1d59036bc25fe5f65a22817c9d44fe (patch)
treefbb9fb06f496ba8ba8f9d99b41ef4a97a10a09d1
parentc20b90647e3378cabd8975026637b60b7e40bec4 (diff)
downloadrust-b473ce304f1d59036bc25fe5f65a22817c9d44fe.tar.gz
rust-b473ce304f1d59036bc25fe5f65a22817c9d44fe.zip
rustc: Obey RUST_MIN_STACK env var
A lot of people are hitting stack overflows in rustc. This will make it
easier to experiment with stack size.
-rw-r--r--src/librustc/rustc.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/librustc/rustc.rs b/src/librustc/rustc.rs
index 369045500ad..625a4aec544 100644
--- a/src/librustc/rustc.rs
+++ b/src/librustc/rustc.rs
@@ -319,7 +319,13 @@ pub fn monitor(f: ~fn(diagnostic::Emitter)) {
     let ch_capture = ch.clone();
     let mut task_builder = task::task();
     task_builder.supervised();
-    task_builder.opts.stack_size = Some(STACK_SIZE);
+
+    // XXX: Hacks on hacks. If the env is trying to override the stack size
+    // then *don't* set it explicitly.
+    if os::getenv("RUST_MIN_STACK").is_none() {
+        task_builder.opts.stack_size = Some(STACK_SIZE);
+    }
+
     match do task_builder.try {
         let ch = ch_capture.clone();
         let ch_capture = ch.clone();