rt: Add RUST_MAX_STACK env var with 8MB default

Closes #1489
This commit is contained in:
Brian Anderson
2012-01-11 12:37:09 -08:00
parent c00ec5f9c9
commit 94c389a25b
9 changed files with 107 additions and 58 deletions

View File

@@ -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;