[Ada] Ensure Ctrl-C is not emited on terminated processes
authorNicolas Roche <roche@adacore.com>
Mon, 22 Jul 2019 13:56:45 +0000 (13:56 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 22 Jul 2019 13:56:45 +0000 (13:56 +0000)
commit1a79e03b8012d5094e5bd432df59abeca5c2fe18
tree48f88a355759883e437a94913f8890a9695587ed
parent4123b473427ca6854f874c77f5ce78c7e8c133a7
[Ada] Ensure Ctrl-C is not emited on terminated processes

Due to the reuse policy of PID on Windows. Sending a Ctrl-C to a dead
process might result in a Ctrl-C sent to the wrong process. The check is
also implemented on Unix platforms and avoid unecessary waits.

2019-07-22  Nicolas Roche  <roche@adacore.com>

gcc/ada/

* terminals.c (__gnat_tty_waitpid): Support both blocking and
not blocking mode.
* libgnat/g-exptty.ads (Is_Process_Running): New function.
* libgnat/g-exptty.adb (Close): Don't try to interrupt/terminate
a process if it is already dead.

From-SVN: r273672
gcc/ada/ChangeLog
gcc/ada/libgnat/g-exptty.adb
gcc/ada/libgnat/g-exptty.ads
gcc/ada/terminals.c