diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-01-11 12:37:09 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-01-11 13:57:11 -0800 |
| commit | 94c389a25bde3f86f25e45b2a31d09bf72d8deeb (patch) | |
| tree | 0247627ef16661479947540d67f4d89d1d115468 /src/rt/rust_env.cpp | |
| parent | c00ec5f9c936639ec2fd9291cd484afa56aa24c8 (diff) | |
| download | rust-94c389a25bde3f86f25e45b2a31d09bf72d8deeb.tar.gz rust-94c389a25bde3f86f25e45b2a31d09bf72d8deeb.zip | |
rt: Add RUST_MAX_STACK env var with 8MB default
Closes #1489
Diffstat (limited to 'src/rt/rust_env.cpp')
| -rw-r--r-- | src/rt/rust_env.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/rt/rust_env.cpp b/src/rt/rust_env.cpp index b220c459c0b..bdec4c28435 100644 --- a/src/rt/rust_env.cpp +++ b/src/rt/rust_env.cpp @@ -8,6 +8,7 @@ // The environment variables that the runtime knows about #define RUST_THREADS "RUST_THREADS" #define RUST_MIN_STACK "RUST_MIN_STACK" +#define RUST_MAX_STACK "RUST_MAX_STACK" #define RUST_LOG "RUST_LOG" #define CHECK_CLAIMS "CHECK_CLAIMS" #define DETAILED_LEAKS "DETAILED_LEAKS" @@ -69,15 +70,26 @@ get_num_threads() static size_t get_min_stk_size() { - char *stack_size = getenv(RUST_MIN_STACK); - if(stack_size) { - return strtol(stack_size, NULL, 0); + char *minsz = getenv(RUST_MIN_STACK); + if(minsz) { + return strtol(minsz, NULL, 0); } else { return 0x300; } } +static size_t +get_max_stk_size() { + char *maxsz = getenv(RUST_MAX_STACK); + if (maxsz) { + return strtol(maxsz, NULL, 0); + } + else { + return 1024*1024*8; + } +} + static char* copyenv(const char* name) { char *envvar = getenv(name); @@ -99,6 +111,7 @@ load_env() { env->num_sched_threads = (size_t)get_num_threads(); env->min_stack_size = get_min_stk_size(); + env->max_stack_size = get_max_stk_size(); env->logspec = copyenv(RUST_LOG); env->check_claims = getenv(CHECK_CLAIMS) != NULL; env->detailed_leaks = getenv(DETAILED_LEAKS) != NULL; |
