DBG: Fixed ThreadDlg. TThreadsDlg.ThreadsChanged was not protected against re-entrance, and could crash.

git-svn-id: trunk@33226 -
This commit is contained in:
martin 2011-11-02 17:52:16 +00:00
parent c297090c91
commit a5b5ca1199

View File

@ -58,6 +58,9 @@ begin
{$IFDEF DBG_DATA_MONITORS} try DebugLnEnter(['DebugDataMonitor: >>ENTER: TThreadsDlg.ThreadsChanged from ', DbgSName(Sender)]); {$ENDIF}
Exclude(FUpdateFlags, ufThreadChanged);
BeginUpdate;
lvThreads.BeginUpdate;
try
if ThreadsMonitor = nil then begin
lvThreads.Clear;
exit;
@ -112,8 +115,12 @@ begin
lvThreads.Items[i].SubItems[5] := Threads[i].GetFunctionWithArg;
lvThreads.Items[i].Data := Threads[i];
end;
finally
lvThreads.EndUpdate;
EndUpdate;
{$IFDEF DBG_DATA_MONITORS} finally DebugLnExit(['DebugDataMonitor: <<EXIT: TThreadsDlg.ThreadsChanged']); end; {$ENDIF}
end;
end;
procedure TThreadsDlg.tbCurrentClick(Sender: TObject);
var