D7, Indy, TIdHTTPServer - memory leak !!!
0 отговора
0 прегледа
D7, Indy, TIdHTTPServer - memory leak !!!
От скоро отново се пробвам с Indy и имам проблем:
При унищожаване на неуспешно отворен TIdHTTPServer (примерно, портът му е бил зает) MemCheck се оплаква, че не се освобождава памет.
Наследих си компонента TIdHTTPServer и му написах метод:
{}procedure TIdHTTPServerNikB.TerminateListenerThreads_NikB; // H809
begin
TerminateListenerThreads; // H809
if FSessionCleanupThread<>nil then begin
FSessionCleanupThread.TerminateAndWaitFor;
FreeAndNil(FSessionCleanupThread);
end;
FSessionCleanupThread := nil;
FSessionList.Clear;
end;
ОБАЧЕ: все ме гложди мисълта, че просто не ми е достатъчно ясна логиката на Инди и затова не ги ползвам както трябва и затова се губи паметта.
Ако някой ми помогне - ще съм благодарен :)
ПП естествено и оригиналното демо на Indy (HTTPServer) дава същия мемори лиик.
При унищожаване на неуспешно отворен TIdHTTPServer (примерно, портът му е бил зает) MemCheck се оплаква, че не се освобождава памет.
Наследих си компонента TIdHTTPServer и му написах метод:
{}procedure TIdHTTPServerNikB.TerminateListenerThreads_NikB; // H809
begin
TerminateListenerThreads; // H809
if FSessionCleanupThread<>nil then begin
FSessionCleanupThread.TerminateAndWaitFor;
FreeAndNil(FSessionCleanupThread);
end;
FSessionCleanupThread := nil;
FSessionList.Clear;
end;
ОБАЧЕ: все ме гложди мисълта, че просто не ми е достатъчно ясна логиката на Инди и затова не ги ползвам както трябва и затова се губи паметта.
Ако някой ми помогне - ще съм благодарен :)
ПП естествено и оригиналното демо на Indy (HTTPServer) дава същия мемори лиик.