Re: Memory leak after closing thread.
On Dec 2, 2:01 am, Michael Tsang <mikl...@gmail.com> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Michal wrote:
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, tes=
tingThread, this,
0,
&dwThreadId);
DWORD dwRet = WaitForSingleObject(m_h=
Thread,
INFINITE);
if(WAIT_OBJECT_0 != dwRet) {
TRACE(_T("Something wro=
ng !!! \n"));
}
int returnHandle = CloseHandle(m_hThr=
ead);
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, memIn=
fo.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
You should ask in a Windows group instead.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAksWOxAACgkQG6NzcAXitM+HygCfZXq+CMdgqiriYLbPx11GuPTD
8owAnRE8LDVxOiN09e3EY15nO80KPVkd
=DNzD
-----END PGP SIGNATURE-----
Your post was worse than worthless and your PGP stuff is obnoxious.