fix, accumulation of zombie processes under linux

This commit is contained in:
Basile Burg 2015-01-21 08:44:57 +01:00
parent f1c16c11d6
commit 3d1e964db3
1 changed files with 15 additions and 0 deletions

View File

@ -169,6 +169,9 @@ begin
fClient.Parameters.Clear; fClient.Parameters.Clear;
fClient.Parameters.Add('--shutdown'); fClient.Parameters.Add('--shutdown');
fClient.Execute; fClient.Execute;
{$IFDEF LINUX}
fClient.Terminate(0);
{$ENDIF}
end; end;
procedure TCEDcdWrapper.restartServer; procedure TCEDcdWrapper.restartServer;
@ -184,6 +187,9 @@ begin
fClient.Parameters.Clear; fClient.Parameters.Clear;
fClient.Parameters.Add('-I' + aFolder); fClient.Parameters.Add('-I' + aFolder);
fClient.Execute; fClient.Execute;
{$IFDEF LINUX}
fClient.Terminate(0);
{$ENDIF}
end; end;
procedure TCEDcdWrapper.getComplAtCursor(aList: TStrings); procedure TCEDcdWrapper.getComplAtCursor(aList: TStrings);
@ -206,6 +212,9 @@ begin
fClient.Execute; fClient.Execute;
// //
fTempLines.LoadFromStream(fClient.Output); fTempLines.LoadFromStream(fClient.Output);
{$IFDEF LINUX}
fClient.Terminate(0);
{$ENDIF}
if fTempLines.Count = 0 then exit; if fTempLines.Count = 0 then exit;
// //
asComp := fTempLines.Strings[0] = 'identifiers'; asComp := fTempLines.Strings[0] = 'identifiers';
@ -261,6 +270,9 @@ begin
// //
aComment := ''; aComment := '';
fTempLines.LoadFromStream(fClient.Output); fTempLines.LoadFromStream(fClient.Output);
{$IFDEF LINUX}
fClient.Terminate(0);
{$ENDIF}
for i := 0 to fTempLines.Count-1 do for i := 0 to fTempLines.Count-1 do
aComment += ReplaceStr(fTempLines.Strings[i], '\n', LineEnding); aComment += ReplaceStr(fTempLines.Strings[i], '\n', LineEnding);
@ -287,6 +299,9 @@ begin
str := 'a'; str := 'a';
setlength(str, 256); setlength(str, 256);
i := fClient.Output.Read(str[1], 256); i := fClient.Output.Read(str[1], 256);
{$IFDEF LINUX}
fClient.Terminate(0);
{$ENDIF}
setLength(str, i); setLength(str, i);
if str <> '' then if str <> '' then
begin begin