This is the mail archive of the
mailing list for the pthreas-win32 project.
RE: cleaning of memory in pthread_create
- From: "Bossom, John" <John dot Bossom at Cognos dot COM>
- To: "'rpj at ise dot canberra dot edu dot au'" <rpj at ise dot canberra dot edu dot au>, pankaj bathwal <pbathwal at yahoo dot com>
- Cc: pthreads-win32 at sources dot redhat dot com
- Date: Tue, 10 Sep 2002 08:21:50 -0400
- Subject: RE: cleaning of memory in pthread_create
Not calling pthread_join on an undetached thread will
leak resources on ALL platforms.
From: Ross Johnson [mailto:email@example.com]
Sent: September 10, 2002 8:14 AM
To: pankaj bathwal
Subject: Re: cleaning of memory in pthread_create
pankaj bathwal wrote:
> 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?
In your code below you have the comment about pthread_join(). Can you
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
> 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. */
> 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
This message may contain privileged and/or confidential information. If you
have received this e-mail in error or are not the intended recipient, you
may not use, copy, disseminate or distribute it; do not open any
attachments, delete it immediately from your system and notify the sender
promptly by e-mail that you have done so. Thank you.