From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3676 invoked by alias); 10 Sep 2002 12:28:58 -0000 Mailing-List: contact pthreads-win32-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: pthreads-win32-owner@sources.redhat.com Received: (qmail 3669 invoked from network); 10 Sep 2002 12:28:57 -0000 Received: from unknown (HELO sotr0085.cognos.com) (205.210.232.62) by sources.redhat.com with SMTP; 10 Sep 2002 12:28:57 -0000 Received: by sotr0085.cognos.com with Internet Mail Service (5.5.2653.19) id ; Tue, 10 Sep 2002 08:21:49 -0400 Message-ID: <430F887D415DD1118C2700805F31ECF108D70DBA@sota0005.cognos.com> From: "Bossom, John" To: "'rpj@ise.canberra.edu.au'" , pankaj bathwal Cc: pthreads-win32@sources.redhat.com Subject: RE: cleaning of memory in pthread_create Date: Tue, 10 Sep 2002 05:28:00 -0000 MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2002/txt/msg00096.txt.bz2 Not calling pthread_join on an undetached thread will leak resources on ALL platforms. John. -----Original Message----- From: Ross Johnson [mailto:rpj@ise.canberra.edu.au] Sent: September 10, 2002 8:14 AM To: pankaj bathwal Cc: pthreads-win32@sources.redhat.com Subject: Re: cleaning of memory in pthread_create 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 "< 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 "< return 0; > } > > > __________________________________________________ > Yahoo! - We Remember > 9-11: A tribute to the more than 3,000 lives lost > http://dir.remember.yahoo.com/tribute 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.