diff options
author | Erich Eckner <git@eckner.net> | 2015-10-05 15:51:27 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2015-10-05 15:51:27 +0200 |
commit | 75482ec872ad53c0d271aa0c85df8933bbff42cc (patch) | |
tree | a958d093d54c696e2591cd5ce41c0ec339b85160 | |
parent | 9c70dfc2b444738c04ac360437da9c7ad826d11d (diff) | |
download | Plasmapropagation-75482ec872ad53c0d271aa0c85df8933bbff42cc.tar.xz |
sigint eingebaut
-rw-r--r-- | Physikunit.pas | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/Physikunit.pas b/Physikunit.pas index 46c5949..18c0a08 100644 --- a/Physikunit.pas +++ b/Physikunit.pas @@ -168,7 +168,8 @@ type fortschrittsAnzeige: boolean; ausgabeDateien: array of tAusgabeDatei; public - gotSigusr1,gotSigterm: boolean; + gotSigusr1,gotSigterm, + gotSigint: boolean; constructor create(inName: string; protokollant: tProtokollant; name: string); destructor destroy; override; function iteriereSchritt(start: double; var zeitPhysik,zeitDatei: double): boolean; // noch nicht zu Ende? @@ -1160,9 +1161,11 @@ var i,j: longint; pro: tProtokollant; {$ENDIF} begin - if simulation.gotSigterm then begin + if simulation.gotSigterm or + simulation.gotSigint then begin abbrechen; simulation.gotSigterm:=false; + simulation.gotSigint:=false; end; if abbruch then begin @@ -1260,6 +1263,7 @@ begin fortschrittsAnzeige:=false; gotSigusr1:=false; gotSigterm:=false; + gotSigint:=false; dP:=-1; pMax:=3; @@ -1543,7 +1547,8 @@ begin na^.sa_Restorer := Nil; {$endif} if (fPSigaction(SIGUSR1, na, nil) <> 0) or - (fPSigaction(SIGTERM, na, nil) <> 0) then begin + (fPSigaction(SIGTERM, na, nil) <> 0) or + (fPSigaction(SIGINT, na, nil) <> 0) then begin pro.schreibe('Fehler: '+inttostr(fpgeterrno)+'.'); raise exception.create('Fehler in tSimulation.create!'); end; @@ -1633,6 +1638,11 @@ begin for i:=0 to length(simulationen)-1 do simulationen[i].gotSigterm:=true; end; + SIGINT: begin + writeln('received SIGINT!'); + for i:=0 to length(simulationen)-1 do + simulationen[i].gotSigint:=true; + end; end{of case}; end; |