The stub incorrectly send its pid before reading the environment file,
and qtcreator does interpret that as sign that it can delete the
environment file.
Task-number: QTCREATORBUG-9024
Change-Id: Id44777abdfdd94aa10815cb00ca27846b95a3ec7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Distinguishes the process that starts the terminal from the stub
process, as on mac to support Terminal.app they are different.
Handle the stub not through the process that starts the terminal,
but through the local socket (on *nix).
Replace the blocking wait(...) in the main thread, with a nonblocking
wait in the signal handler when receiving a SIGCHLD, to leave the
main thread able to handle communication with creator.
This change allows the use of terminal emulator commands
that share a single instance or that fork.
So this is also the real fix for QTCREATORBUG-1633 on linux.
If creator crashes the stub and the debugged program live on.
This was done on purpose, it could be changed if considered better.
Task-number: QTCREATORBUG-6371
Task-number: QTCREATORBUG-1633
Change-Id: I4d4fb3a67b1987f4e46e2c603dcefe8c15152ad2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Setting Tools/Options/Environment/General/Terminal to one of the
following works now as expected.
1. xterm -e
2. aterm -e
3. rxvt -e
4. urxvt -e
5. xfce4-terminal -x
6. konsole --nofork -e
7. gnome-terminal -x
Without the '--nofork' option for konsole, from creator's pov, the
terminal emulator will finish immediately and therefore creator closes
the local socket. As a result of this, the user is presented with sth.
like this (from the stub):
Cannot connect creator comm socket /tmp/qt_temp.A13523/stub-socket:
No such file or directory.
Task-Number: QTCREATORBUG-1633
Change-Id: I732e20d34aebdc1591355e0c4e78c907f439924c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>