From: Ulrich Drepper Date: Tue, 21 Dec 1999 07:31:36 +0000 (+0000) Subject: (pthread_initialize): Move getrlimit call after setting of errno. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a1d05462fc0ce3deb22d8c82949794cdc71a6705;p=thirdparty%2Fglibc.git (pthread_initialize): Move getrlimit call after setting of errno. --- diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index e74814737f1..2f44d025c89 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -289,15 +289,6 @@ static void pthread_initialize(void) STACK_SIZE boundary. */ __pthread_initial_thread_bos = (char *)(((long)CURRENT_STACK_FRAME - 2 * STACK_SIZE) & ~(STACK_SIZE - 1)); - /* Play with the stack size limit to make sure that no stack ever grows - beyond STACK_SIZE minus two pages (one page for the thread descriptor - immediately beyond, and one page to act as a guard page). */ - getrlimit(RLIMIT_STACK, &limit); - max_stack = STACK_SIZE - 2 * __getpagesize(); - if (limit.rlim_cur > max_stack) { - limit.rlim_cur = max_stack; - setrlimit(RLIMIT_STACK, &limit); - } /* Update the descriptor for the initial thread. */ __pthread_initial_thread.p_pid = __getpid(); /* If we have special thread_self processing, initialize that for the @@ -308,6 +299,15 @@ static void pthread_initialize(void) /* The errno/h_errno variable of the main thread are the global ones. */ __pthread_initial_thread.p_errnop = &_errno; __pthread_initial_thread.p_h_errnop = &_h_errno; + /* Play with the stack size limit to make sure that no stack ever grows + beyond STACK_SIZE minus two pages (one page for the thread descriptor + immediately beyond, and one page to act as a guard page). */ + getrlimit(RLIMIT_STACK, &limit); + max_stack = STACK_SIZE - 2 * __getpagesize(); + if (limit.rlim_cur > max_stack) { + limit.rlim_cur = max_stack; + setrlimit(RLIMIT_STACK, &limit); + } #ifdef __SIGRTMIN /* Initialize real-time signals. */ init_rtsigs ();