From mboxrd@z Thu Jan 1 00:00:00 1970 From: aureliom@crt.com To: SCroall@staffware.com, geoff.stevens@macro4.com, pthreads-win32@sourceware.cygnus.com Subject: RE: HANDLE leak Date: Tue, 12 Oct 1999 09:16:00 -0000 Message-id: X-SW-Source: 1999/msg00105.html You should call the routine pthread_detach() or set the PTHREAD_CREATE_DETACHED attribute. If you call pthread_join() it will block your program. The only disadvantage to detached threads is that you can no longer call pthread_join(). However, if you never need to call this function then there is no disadvantage. Aurelio Medina Bank of America, Distributed Systems Management Voice: (312) 234-2105 Fax: (312) 453-2105 mailto:aureliom@crt.com < mailto:aureliom@crt.com > http://netatwork.nbgfn.com/html/gas.html < http://netatwork.nbgfn.com/html/gas.html > -----Original Message----- From: Steve Croall [SMTP:SCroall@staffware.com] Sent: Tuesday, October 12, 1999 11:05 AM To: 'Geoff Stevens'; 'pthreads-win32@sourceware.cygnus.com' Subject: RE: HANDLE leak Thanks. Are there any disadvantages to running the threads detached? Is there any reason why this is not the default behaviour? I wouldn't be surprised if that was just the way it was :-) Steve. -----Original Message----- From: Geoff Stevens [ mailto:geoff.stevens@macro4.com ] Sent: 12 October 1999 17:04 To: 'pthreads-win32@sourceware.cygnus.com' Subject: FW: HANDLE leak Steve, I think you should either create your threads detached (set PTHREAD_CREATE_DETACHED in the attributes) or do a pthread_join for each of them in main(). At the moment the threads you create are waiting for a join after pthread_exit, and their Win32 threads (and thus their handles) cannot be released. I'm using detached threads with the same levels of the library and NT and see no increase in handle usage after all my threads have terminated. Best, Geoff Stevens -----Original Message----- From: Steve Croall [SMTP:SCroall@staffware.com] Sent: 12 October 1999 16:24 To: geoff.stevens@macro4.com Subject: HANDLE leak The following small program shows the HANDLE count in "Performance Monitor", for the executable when running, increasing at an alarming rate. Is this normal or am I not doing something to clear-up? I am using the 1999-09-17 snap-shot on Windows NT 4, service pack 4. #include #include #include #include "pthread.h" void *thrd_func (void *i) { Sleep (500); pthread_exit ((void *) 1); } int main (int argc, char **argv) { int i = 0; pthread_t t_id; while (!_kbhit ()) { Sleep (1000); pthread_create (&t_id, NULL, (void *) thrd_func, NULL); } Sleep (1000); } Regards, Steve Croall ( SCroall@staffware.com ) Chicago law prohibits eating in a place that is on fire.