This is the mail archive of the pthreads-win32@sourceware.org mailing list for the pthreas-win32 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Memory leak with detached threads


Hi Tim, all,
I tested the C code using the prebuilt-dll-2-7-0-release but I continue to have the
memory leak.


Could you test the code I attached to verify that the memory leak is really present
in order to made a fix for it?
Thanks for your help in advance
giu


Tim Theisen wrote:
Did you consider using the latest version?

The current version is 2.7.0 (2005-06-04)

http://sourceware.org/pthreads-win32/

Version 2.6.0 specifically mentions a resource leak with
pthread_detach():

* pthread_detach() now reclaims remaining thread resources if called
after
the target thread has terminated. Previously, this routine did nothing
in
this case.

http://sourceware.org/pthreads-win32/news.html

...Tim
--
Tim Theisen Lead Research Software Engineer
Phone: +1 608 824 2848 TomoTherapy Incorporated
Fax: +1 608 824 2996 1240 Deming Way
Web: http://www.tomotherapy.com Madison, WI 53717-1954



-----Original Message----- From: pthreads-win32-owner@sourceware.org [mailto:pthreads-win32-owner@sourceware.org] On Behalf Of Giuliano Catrambone Sent: Sunday, October 29, 2006 13:43 To: pthreads-win32@sources.redhat.com Subject: Memory leak with detached threads

Hi all,
    I found a memory leak working with detached threads.
    I just made a simple C code to demonstrate where I have the memory
leak.

    Running the attached C code I saw about 4KB of memory leak every 20
iteration.

I'm using pthreads-dll-2005-03-08.

    Could you tell me if I'm wronging something or if it is a bug?
    Thanks in advance
       giu

--
-----------------------------------------------------------------
Giuliano Catrambone
Director, Professional Services

Open source projects:
http://sourceforge.net/projects/catralibraries/
http://sourceforge.net/projects/openstreaming/

CatraSoftware:
Home page: http://www.catrasoftware.it

Streaming page:
http://www.catrasoftware.it/Streaming/CatraStreamingPlatform.htm

Mobile +39.393.8816655
Fixed: +39.02.90377228
Skype: Catrambone Giuliano
msn: giulianocatrambone@hotmail.com
Jabber: giuliano.catrambone@Jabber.org
Yahoo: giuliano.catrambone
-----------------------------------------------------------------






--
-----------------------------------------------------------------
Giuliano Catrambone
Director, Professional Services

Open source projects:
http://sourceforge.net/projects/catralibraries/
http://sourceforge.net/projects/openstreaming/

CatraSoftware:
Home page: http://www.catrasoftware.it

Streaming page:
http://www.catrasoftware.it/Streaming/CatraStreamingPlatform.htm

Mobile +39.393.8816655
Fixed: +39.02.90377228
Skype: Catrambone Giuliano
msn: giulianocatrambone@hotmail.com
Jabber: giuliano.catrambone@Jabber.org
Yahoo: giuliano.catrambone
-----------------------------------------------------------------


#include <iostream>
#include <pthread.h>
#include <windows.h>

void *runFunction (void *pvPThread)

{

	std:: cout << "Inside the thread" << std:: endl;

	Sleep (300);


	return (void *) NULL;

}

int main ()

{
	pthread_t			_pThread;
	pthread_attr_t		_pThreadAttribute;


	for (long lIndex = 0; lIndex < 1000; lIndex++)
	{
		std:: cout << "Index: " << lIndex << std:: endl;

		std:: cout << pthread_attr_init (&_pThreadAttribute) << std:: endl;

		std:: cout << pthread_attr_setdetachstate (&_pThreadAttribute, PTHREAD_CREATE_DETACHED)
			<< std:: endl;

		std:: cout << pthread_create (&_pThread, &_pThreadAttribute, runFunction, NULL) << std:: endl;

		// std:: cout << pthread_join (_pThread, &pvStatus) << std:: endl;

		std:: cout << pthread_attr_destroy (&_pThreadAttribute) << std:: endl;

		Sleep (300);
	}

	Sleep (1000 * 1000);

	return 0;
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]