about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2013-08-05 13:10:34 -0700
committerBrian Anderson <banderson@mozilla.com>2013-08-07 15:40:27 -0700
commit0929eb4ac8bfe00c5b3430fac3a07dcf64b51d02 (patch)
treed08d6deca9dcda2672aa1a080f5cce23bdc749de
parentae1ed4fd78273502153083f1514a1fcd7c929886 (diff)
downloadrust-0929eb4ac8bfe00c5b3430fac3a07dcf64b51d02.tar.gz
rust-0929eb4ac8bfe00c5b3430fac3a07dcf64b51d02.zip
rustc: Use 4MB stacks. Needed for unoptimized builds apparently.
-rw-r--r--src/librustc/rustc.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/librustc/rustc.rs b/src/librustc/rustc.rs
index 222433787f0..1dfca0ba0e8 100644
--- a/src/librustc/rustc.rs
+++ b/src/librustc/rustc.rs
@@ -298,10 +298,18 @@ bug and need to present an error.
 */
 pub fn monitor(f: ~fn(diagnostic::Emitter)) {
     use std::comm::*;
+
+    // XXX: This is a hack for newsched since it doesn't support split stacks.
+    // rustc needs a lot of stack!
+    static STACK_SIZE: uint = 4000000;
+
     let (p, ch) = stream();
     let ch = SharedChan::new(ch);
     let ch_capture = ch.clone();
-    match do task::try || {
+    let mut task_builder = task::task();
+    task_builder.supervised();
+    task_builder.opts.stack_size = Some(STACK_SIZE);
+    match do task_builder.try {
         let ch = ch_capture.clone();
         let ch_capture = ch.clone();
         // The 'diagnostics emitter'. Every error, warning, etc. should