diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-04-26 15:36:19 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-04-26 15:39:54 -0700 |
| commit | 149047e55d8eace3ea9d005905577f17b25c54e2 (patch) | |
| tree | bfbb6e340da8d530646f2fd4940c22ff14d38614 /src/rt/rust_task.cpp | |
| parent | 64412eca10399d64d25346d5f8220c1b1f88cd29 (diff) | |
| download | rust-149047e55d8eace3ea9d005905577f17b25c54e2.tar.gz rust-149047e55d8eace3ea9d005905577f17b25c54e2.zip | |
rt: Set the stack depth limit to 1GB. Abort on error.
People hit the recursion depth limit too often, it's not possible to unwind reliably from out-of-stack. Issues #3555, #3695
Diffstat (limited to 'src/rt/rust_task.cpp')
| -rw-r--r-- | src/rt/rust_task.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index 7e146cce68e..e6293aa5c1d 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -530,11 +530,11 @@ rust_task::new_stack(size_t requested_sz) { // arbitrarily selected as 2x the maximum stack size. if (!unwinding && used_stack > max_stack) { LOG_ERR(this, task, "task %" PRIxPTR " ran out of stack", this); - fail(); + abort(); } else if (unwinding && used_stack > max_stack * 2) { LOG_ERR(this, task, "task %" PRIxPTR " ran out of stack during unwinding", this); - fail(); + abort(); } size_t sz = rust_stk_sz + RED_ZONE_SIZE; |
