diff options
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; |
