memory leak??

Ross Johnson rpj@callisto.canberra.edu.au
Wed Mar 24 07:05:00 GMT 2004


There's nothing that big in the library and no arrays of objects that 
big etc that I recall. What exactly is included in the size that Task 
Manager reports? Could it be pages of the DLL itself that have been 
loaded into memory? The DLL is only 52k and half of it could easily have 
been loaded after the first pthread_create() call.

What happens if you put the getchar() ... getchar() block in a loop - do 
you get 28k added each time?

Ross

Philipp Klaus Krause wrote:

> Arnett, Don L. schrieb:
>
>> I'm new to using pthreadsWin32.  According to the TaskMgr display 
>> this program is using about 28K more memory at the second getchar() 
>> than it was at the first getchar().  I found a couple of discussions 
>> of memory leaks in the list archives and it usually was a programmer 
>> problem, but I don't see what I'm missing.  Thanks for any input.
>>
>> #include <stdio.h>
>> #include <stdlib.h>
>> #include <pthread.h>
>>
>> void *pvDoSomething(void *poThreadArgs);
>>
>> int main(int argc, char* argv[]) {
>>
>>     pthread_t *poThread;
>>
>>     getchar();
>>
>>     poThread = (pthread_t*)calloc(1,sizeof(pthread_t));
>>     pthread_create(poThread,NULL,pvDoSomething,NULL);
>>     pthread_detach(*poThread);
>>     
>>     free(poThread);
>>
>>     getchar();
>>
>>     return 0;
>> }
>>
>> void *pvDoSomething(void *poThreadArgs) {
>>     return NULL;
>> }
>>
>>
> The created thread does not necessarily run and exit immidiately.
> It might still exist when you reach the second getchar().




More information about the Pthreads-win32 mailing list