From 3d1e964db31a0665a1f9608e53c5afc63be14f35 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Wed, 21 Jan 2015 08:44:57 +0100 Subject: [PATCH] fix, accumulation of zombie processes under linux --- src/ce_dcd.pas | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ce_dcd.pas b/src/ce_dcd.pas index 1ced6c27..da95df7e 100644 --- a/src/ce_dcd.pas +++ b/src/ce_dcd.pas @@ -169,6 +169,9 @@ begin fClient.Parameters.Clear; fClient.Parameters.Add('--shutdown'); fClient.Execute; + {$IFDEF LINUX} + fClient.Terminate(0); + {$ENDIF} end; procedure TCEDcdWrapper.restartServer; @@ -184,6 +187,9 @@ begin fClient.Parameters.Clear; fClient.Parameters.Add('-I' + aFolder); fClient.Execute; + {$IFDEF LINUX} + fClient.Terminate(0); + {$ENDIF} end; procedure TCEDcdWrapper.getComplAtCursor(aList: TStrings); @@ -206,6 +212,9 @@ begin fClient.Execute; // fTempLines.LoadFromStream(fClient.Output); + {$IFDEF LINUX} + fClient.Terminate(0); + {$ENDIF} if fTempLines.Count = 0 then exit; // asComp := fTempLines.Strings[0] = 'identifiers'; @@ -261,6 +270,9 @@ begin // aComment := ''; fTempLines.LoadFromStream(fClient.Output); + {$IFDEF LINUX} + fClient.Terminate(0); + {$ENDIF} for i := 0 to fTempLines.Count-1 do aComment += ReplaceStr(fTempLines.Strings[i], '\n', LineEnding); @@ -287,6 +299,9 @@ begin str := 'a'; setlength(str, 256); i := fClient.Output.Read(str[1], 256); + {$IFDEF LINUX} + fClient.Terminate(0); + {$ENDIF} setLength(str, i); if str <> '' then begin