cleaning of memory in pthread_create
Ross Johnson
rpj@ise.canberra.edu.au
Tue Sep 10 05:13:00 GMT 2002
pankaj bathwal wrote:
> Hi,
> This is regarding freeing of resource and cleaning of
> memory allocated when "pthread_create" is called.
> Most of my memory leaks tool says 'memory leak of 120
> bytes allocated by calloc in "ptw32_new.c"'.
> Is there any call that will free memory and resources?
> Or there is some other way?
Hi Pankaj,
In your code below you have the comment about pthread_join(). Can you
elaborate?
All threads are joinable by default, so your thread's struct won't be
freed unless you either join the thread, or make the thread detached
before it exits.
See the PTHREAD_CREATE_DETACHED attribute and the
pthread_attr_setdetachstate() function.
Regards.
Ross
>
> Regards
>
> Pankaj
>
>
> This is my sample code.
>
>
> static int washere = 0;
>
> void * func(void * arg)
> {
> washere = 1;
> std::cout<<"Inside The THREAD "<<std::endl;
> return 0;
> }
>
> int main()
> {
> pthread_t t;
>
> assert(pthread_create(&t, NULL, func, NULL) == 0);
>
> /* A dirty hack, but we cannot rely on pthread_join
> in this
> primitive test. */
> Sleep(2000);
> assert(washere == 1);
> std::cout<<"Out side the THREAD "<<std::endl;
> return 0;
> }
>
>
> __________________________________________________
> Yahoo! - We Remember
> 9-11: A tribute to the more than 3,000 lives lost
> http://dir.remember.yahoo.com/tribute
More information about the Pthreads-win32
mailing list