bei einer kleinen Variation vom multithreat example wird ganz Linux inclusive Lazarus und X-Server zum abstürzen gebracht.
Das ist irgendwie unkomfortabel... denn eigentlich sollte Lazarus ja das Programm überwachen und merken, dass jetzt das Programm in eine endlos schleife geraten ist und daraufhin eine Fehlermeldung ausgeben.
Es wäre schön, wenn die Leute die tiefer in der Materie drin sind, es an die Prorammierer weiter geben und die den Bug beheben.
Das Programm inclusive aller Dateien ist im Anhang.
Die wichtige Procedure zum überblick aber hier:
Code: Alles auswählen
procedure TMyThread.Execute;
var
newStatus : string;
i:Integer;
begin
i:=0;
fStatusText := 'TMyThread Starting...';
Synchronize(@Showstatus);
fStatusText := 'TMyThread Running...';
while (not Terminated) and (not stop) do
begin
// inc(i); // wenn man das entkommentiert stüzt ganz Linux ab
NewStatus:=IntToStr(i);
if NewStatus <> fStatusText then
begin
fStatusText := newStatus;
Synchronize(@Showstatus);
end;
end;
end;