[Bug libgcj/23763] Runtime.getRuntime().exec() signalling

aeby at graeff dot com gcc-bugzilla@gcc.gnu.org
Thu Sep 15 14:25:00 GMT 2005

------- Additional Comments From aeby at graeff dot com  2005-09-15 14:24 -------
I don't think this bug is linked with 23758. No matter if you call unsafe
procedures before or after fork() SIGCHLD ist still blocked at the point where
execvp() is called. It seems the posix-threads code does explicitly block
SIGCHLD signals (block_sigchld() in libjava/posix-threads.cc) without unblocking
them before calling execvp(). Therefore, the child process runs with SIGCHLD
blocked, too.

I'm attaching a dirty hack(?) fixing the problem for me (just sets signal
handler for SIGCHLD to SIG_DFL and unblock SIGCHLD just before execvp()).

BTW: Am I the only person in the world that is trying to exec() external
programs from Java? :-))



More information about the Java-prs mailing list