1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-15 07:54:13 +00:00

killpg is POSIX, so we can rely on it now. (#150)

This removes some usages of the SYSVONLY flag and lets us assume
the existence of `killpg`. It also updates a bit of code to accurately
populate the `pgrp` variable using `tcgetpgrp` rather than an ioctl.
This commit is contained in:
Bruce Mitchener 2020-12-31 12:39:42 +07:00 committed by GitHub
parent f1647df8b1
commit a47119f006
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 1 additions and 20 deletions

View File

@ -912,13 +912,8 @@ and do a 'v' before trying anything else.";
case SIGHUP:
sprintf(errormsg, "HANGUP signalled (code %d) at address %p.\n%s", code, addr, stdmsg);
/* Assume that a user tried to exit UNIX shell */
#ifdef SYSVONLY
kill(0, SIGKILL);
exit(0);
#else
killpg(getpgrp(), SIGKILL);
exit(0);
#endif /* SYSVONLY */
break;
#endif /* SIGHUP */
case SIGFPE:

View File

@ -803,18 +803,8 @@ LispPTR Unix_handlecomm(LispPTR *args) {
/* Change window size, then
notify process group of the change */
if ((ioctl(pty, TIOCSWINSZ, &w) >= 0) &&
#ifdef ISC
(tcgetpgrp(pty) >= 0) &&
#else
(ioctl(pty, TIOCGPGRP, &pgrp) >= 0) &&
#endif /* ISC */
#ifdef SYSVONLY
(kill(-pgrp, SIGWINCH) >= 0))
#else
((pgrp = tcgetpgrp(pty)) >= 0) &&
(killpg(pgrp, SIGWINCH) >= 0))
#endif /* SYSVONLY */
return (ATOM_T);
return (GetSmallp(errno));
}

View File

@ -344,11 +344,7 @@ LispPTR suspend_lisp(LispPTR *args) {
/* Send a terminal-stop signal to the whole process-group, not
just this process, so that if we are running as part of a
C-shell file the shell will be suspended too. */
#ifdef SYSVONLY
kill(0, SIGTSTP);
#else
killpg(getpgrp(), SIGTSTP);
#endif /* SYSVONLY */
OSMESSAGE_PRINT(printf("resuming\n"));
device_after_raid();