Initializing initial bottom of stack variable in pthread.c

Daniel Jacobowitz drow@false.org
Tue Aug 1 01:49:00 GMT 2006


On Fri, Jul 28, 2006 at 03:08:32PM -0700, Jay anonymous wrote:
> I downloaded glibc-linuxthreads-2.3.6.tar.gz and took
> a look at the __pthread_initial_thread_bos variable in
> pthread_initialize for the case when the stack grows
> down (line 534).  My first question is why is is it
> initializing for at least STACK_SIZE bytes below the
> current stack address?  Is this to account for the
> stack for the initial thread & the stack for the
> manager thread?  My second question is why the 2 *
> STACK_SIZE in the computation?  Since the stack is
> growing down and the computation consists of the &
> ~(STACK_SIZE - 1), this actually initializes the
> variable to 3 * STACK_SIZE from the top.  Is this
> correct?

No, this allocates STACK_SIZE for the manager thread and then
_at least_ STACK_SIZE for the initial thread.  Could be up to
2 * STACK_SIZE - 1, but will be at least as big as requested.

-- 
Daniel Jacobowitz
CodeSourcery



More information about the Libc-alpha mailing list