Prev: Windows equivalent of scandir( )
Next: Bitmap help
From: Michal on 1 Dec 2009 10:43 Before I explain exactly where is the problem I will show my code: (Platform - Windows CE 5, VisualStudio 2005) The interesting part of source code is below: /**************************************************************/ class classA { public: static DWORD WINAPI testingThread(LPVOID lpvoid); HANDLE m_hThread; void startthread(); }; DWORD WINAPI classA::testingThread(LPVOID lpvoid) { return 1; } void classA::startthreadk() { for(int counter = 0 ; counter < 100 ; counter++) { MEMORYSTATUS memInfo; memInfo.dwLength = sizeof(memInfo); GlobalMemoryStatus(&memInfo); DWORD dwThreadId = 0; m_hThread = CreateThread(NULL, 0, testingThread, this, 0, &dwThreadId); DWORD dwRet = WaitForSingleObject(m_hThread, INFINITE); if(WAIT_OBJECT_0 != dwRet) { TRACE(_T("Something wrong !!! \n")); } int returnHandle = CloseHandle(m_hThread); TRACE(_T("After closing handle = %d \n"),returnHandle); m_hThread = NULL; MEMORYSTATUS memInfo1; memInfo1.dwLength = sizeof(memInfo1); GlobalMemoryStatus(&memInfo1); TRACE(_T("%d Test %d\n"),counter, memInfo.dwAvailPhys - memInfo1.dwAvailPhys); } } /**************************************************************/ The problem is that I don't know why but sometimes (usually one per three times) I can see the memory leak of 4096 bytes. Why? Do I do something wrong with closing thread? (Of course the program without creating thread works ok). Closehandle always returns 1, so everything should be ok. I will be grateful for any response. Michal
From: Ulrich Eckhardt on 2 Dec 2009 07:37 Michal wrote: > Before I explain exactly where is the problem I will show my code: > (Platform - Windows CE 5, VisualStudio 2005) See my reply in microsoft.public.win32.programmer.wince. Uli
|
Pages: 1 Prev: Windows equivalent of scandir( ) Next: Bitmap help |