Re: Wyciek pamięci podczas kasowania wątku

Autor: Matuzalem <codemaster__at_op.pl>
Data: Fri 27 Oct 2006 - 13:26:14 MET DST
Message-ID: <1161948374.643450.115630@e3g2000cwe.googlegroups.com>
Content-Type: text/plain; charset="iso-8859-2"

User napisał(a):
> > widzę tu dwa potencjalnie gorące miejsca.
> >
> > po pierwsze, nie wiem po co wołasz ExitThread(), samo zakończenie funkcji
> > powinno wystarczyć.
> >
> > po drugie, co się stanie jeśli wątek główny zdąży wykonać CloseHandle()
> > zanim wątek się zakończy? synchronizujesz to jakoś?
> >
> > Wiktor Zychla
>
> CloseHandle() wywołuję po zakończeniu wątku.
> Z funkcji wątku usunąłem wywołanie ExitThread().
> Niestety bez efektu - nadal pamięć wycieka :-(

Witam

//-------------------------------------------
DWORD WINAPI ThreadProc(void* Args)
{

  Sleep(2000);

  return 0;
}

int main()
{
  DWORD tid = 0;

  HANDLE hthread = CreateThread(0, 0, ThreadProc, 0, 0, &tid);

  WaitForSingleObject(hthread, INFINITE);

  CloseHandle(hthread);

  return 0;
}
//-------------------------------

Spróbuj tego. Tak na marginesie jaki cudem twój okd ruszył na 98?
skoro w ostatnim parametrze 'CreatThread' masz 0?

MSDN:
"lpThreadId
[out] Pointer to a variable that receives the thread identifier. If
this parameter is NULL, the thread identifier is not returned.
Windows Me/98/95: This parameter may not be NULL."

Pozdrawiam
Received on Fri Oct 27 13:30:15 2006

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Fri 27 Oct 2006 - 13:42:04 MET DST