Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

2.35 bug tthread   Найти похожие ветки 

 
grm ©   (2006-05-16 14:14) [0]

в деструкторе нити (KOL) вызывается waitfor, который вызывает еще раз деструктор, закрывает дескриптор нити, и при возвращении падаем на CloseHandle(FHandle);
 попробовал обнулить после закрытия дескриптор для корректной работы, но получаем дальше ошибку особождения памяти. судя по всему весь алгоритм зачем-то сильно исказили в последнее время...
в версии 2.33 такого не было.

destructor TThread.Destroy;
begin
 if not FTerminated then
 begin
   Terminate;
>    WaitFor;
 end;
 if (FHandle <> 0) then
   begin
     CloseHandle(FHandle);
   end;
 inherited;
end;

function TThread.WaitFor: Integer;
begin
 RefInc;
 Result := -1;
 if FHandle = 0 then Exit;
 WaitForSingleObject(FHandle, INFINITE);
 GetExitCodeThread(FHandle, DWORD(Result));
>  RefDec;
end;


 
mdw ©   (2006-05-16 14:26) [1]

В ветке http://delphimaster.net/view/11-1145208691/ обсуждали.

Я Кладову писал, но он интереса не проявил. Там что-то с  RefCount напутано, примерно в версии 2.33 он и изменил обработку. Варианта два:  подождать или использовать OLD_REFCOUNT. Я жду пока, юзаю 2.30.



Страницы: 1 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.048 c
4-1159698620
AlexeyT
2006-10-01 14:30
2007.02.11
Вывод арабского текста (справа-налево)


2-1169615914
ashnurov
2007-01-24 08:18
2007.02.11
Как сделать случайный вывод текста


2-1169633090
iviom
2007-01-24 13:04
2007.02.11
Как на кнопку иконку поместить?


15-1169218139
oldman
2007-01-19 17:48
2007.02.11
Почтовый ящик глюкнул, извините, пожалуйста...


15-1169399612
koha
2007-01-21 20:13
2007.02.11
Как на форуме относятся к бесплатному и ПО за дениги