Thursday, March 25, 2010

Thread stack in heap (pthreads)

I had known that a thread has a stack. But never thought where is this stack lie in the memory?

Well, it should be process stack. But you can set the thread stack to a heap area.

How to do that?

#include "pthread.h"
#include "stdio.h"
#include "unistd.h"

pthread_mutex_t mutex1;

void* foo(void *arg)
int arr[1024*8];

int x = 0;
while(x++ < (8*1024) )
{ arr[x] = x; }

puts("Thread created");

int main()
int *p;
void *ret;

p = malloc(1024);


pthread_attr_t attr;

pthread_attr_setstack(&attr, p, 2);

pthread_t thread1;

pthread_create(&thread1, NULL, foo, NULL);

pthread_join(thread1, &ret);


return 0;

But still I am not very sure of this concept.

Stay tuned for more!

No comments: