projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
BSD 4_3_Tahoe release
[unix-history]
/
usr
/
src
/
bin
/
csh
/
sh.proc.c
diff --git
a/usr/src/bin/csh/sh.proc.c
b/usr/src/bin/csh/sh.proc.c
index
b7e3514
..
ebc08e5
100644
(file)
--- a/
usr/src/bin/csh/sh.proc.c
+++ b/
usr/src/bin/csh/sh.proc.c
@@
-5,7
+5,7
@@
*/
#ifndef lint
*/
#ifndef lint
-static char *sccsid = "@(#)sh.proc.c 5.
5 (Berkeley) 5/13/86
";
+static char *sccsid = "@(#)sh.proc.c 5.
10 (Berkeley) 5/19/88
";
#endif
#include "sh.h"
#endif
#include "sh.h"
@@
-35,9
+35,10
@@
pchild()
union wait w;
int jobflags;
struct rusage ru;
union wait w;
int jobflags;
struct rusage ru;
+ extern int insource;
loop:
loop:
- pid = wait3(&w, (setintr ? WNOHANG|WUNTRACED:WNOHANG), &ru);
+ pid = wait3(&w, (setintr
&& (intty || insource)
? WNOHANG|WUNTRACED:WNOHANG), &ru);
if (pid <= 0) {
if (errno == EINTR) {
errno = 0;
if (pid <= 0) {
if (errno == EINTR) {
errno = 0;
@@
-136,7
+137,8
@@
found:
pnote()
{
register struct process *pp;
pnote()
{
register struct process *pp;
- int flags, omask;
+ int flags;
+ long omask;
neednote = 0;
for (pp = proclist.p_next; pp != PNULL; pp = pp->p_next) {
neednote = 0;
for (pp = proclist.p_next; pp != PNULL; pp = pp->p_next) {
@@
-158,7
+160,7
@@
pnote()
pwait()
{
register struct process *fp, *pp;
pwait()
{
register struct process *fp, *pp;
-
int
omask;
+
long
omask;
/*
* Here's where dead procs get flushed.
/*
* Here's where dead procs get flushed.
@@
-186,7
+188,8
@@
pjwait(pp)
register struct process *pp;
{
register struct process *fp;
register struct process *pp;
{
register struct process *fp;
- int jobflags, reason, omask;
+ int jobflags, reason;
+ long omask;
while (pp->p_pid != pp->p_jobid)
pp = pp->p_friends;
while (pp->p_pid != pp->p_jobid)
pp = pp->p_friends;
@@
-208,7
+211,7
@@
pjwait(pp)
while ((fp = (fp->p_friends)) != pp);
if ((jobflags & PRUNNING) == 0)
break;
while ((fp = (fp->p_friends)) != pp);
if ((jobflags & PRUNNING) == 0)
break;
- sigpause(sigblock(0) &~ sigmask(SIGCHLD));
+ sigpause(sigblock(0
L
) &~ sigmask(SIGCHLD));
}
(void) sigsetmask(omask);
if (tpgrp > 0) /* get tty back */
}
(void) sigsetmask(omask);
if (tpgrp > 0) /* get tty back */
@@
-245,7
+248,7
@@
pjwait(pp)
dowait()
{
register struct process *pp;
dowait()
{
register struct process *pp;
-
int
omask;
+
long
omask;
pjobs++;
omask = sigblock(sigmask(SIGCHLD));
pjobs++;
omask = sigblock(sigmask(SIGCHLD));
@@
-253,7
+256,7
@@
loop:
for (pp = proclist.p_next; pp; pp = pp->p_next)
if (pp->p_pid && /* pp->p_pid == pp->p_jobid && */
pp->p_flags&PRUNNING) {
for (pp = proclist.p_next; pp; pp = pp->p_next)
if (pp->p_pid && /* pp->p_pid == pp->p_jobid && */
pp->p_flags&PRUNNING) {
- sigpause(0);
+ sigpause(0
L
);
goto loop;
}
(void) sigsetmask(omask);
goto loop;
}
(void) sigsetmask(omask);
@@
-563,7
+566,7
@@
pprint(pp, flag)
printf("%5d ", pp->p_pid);
if (flag&(REASON|AREASON)) {
if (flag&NAME)
printf("%5d ", pp->p_pid);
if (flag&(REASON|AREASON)) {
if (flag&NAME)
- format = "%-2
1
s";
+ format = "%-2
3
s";
else
format = "%s";
if (pstatus == status)
else
format = "%s";
if (pstatus == status)
@@
-783,9
+786,9
@@
dokill(v)
if (name = mesg[signum].iname)
printf("%s ", name);
if (signum == 16)
if (name = mesg[signum].iname)
printf("%s ", name);
if (signum == 16)
- putchar('\n');
+
csh
putchar('\n');
}
}
- putchar('\n');
+
csh
putchar('\n');
return;
}
if (digit(v[0][1])) {
return;
}
if (digit(v[0][1])) {
@@
-814,7
+817,8
@@
pkill(v, signum)
{
register struct process *pp, *np;
register int jobflags = 0;
{
register struct process *pp, *np;
register int jobflags = 0;
- int omask, pid, err = 0;
+ int pid, err = 0;
+ long omask;
char *cp;
extern char *sys_errlist[];
char *cp;
extern char *sys_errlist[];
@@
-836,7
+840,7
@@
pkill(v, signum)
case SIGTTIN:
case SIGTTOU:
if ((jobflags & PRUNNING) == 0) {
case SIGTTIN:
case SIGTTOU:
if ((jobflags & PRUNNING) == 0) {
- printf("%s: Already s
topp
ed\n", cp);
+ printf("%s: Already s
uspend
ed\n", cp);
err++;
goto cont;
}
err++;
goto cont;
}
@@
-878,7
+882,8
@@
pstart(pp, foregnd)
int foregnd;
{
register struct process *np;
int foregnd;
{
register struct process *np;
- int omask, jobflags = 0;
+ int jobflags = 0;
+ long omask;
omask = sigblock(sigmask(SIGCHLD));
np = pp;
omask = sigblock(sigmask(SIGCHLD));
np = pp;
@@
-910,7
+915,7
@@
panystop(neednl)
chkstop = 2;
for (pp = proclist.p_next; pp; pp = pp->p_next)
if (pp->p_flags & PSTOPPED)
chkstop = 2;
for (pp = proclist.p_next; pp; pp = pp->p_next)
if (pp->p_flags & PSTOPPED)
- error("\nThere are s
topp
ed jobs" + 1 - neednl);
+ error("\nThere are s
uspend
ed jobs" + 1 - neednl);
}
struct process *
}
struct process *
@@
-1013,7
+1018,8
@@
pfork(t, wanttty)
{
register int pid;
bool ignint = 0;
{
register int pid;
bool ignint = 0;
- int pgrp, omask;
+ int pgrp;
+ long omask;
/*
* A child will be uninterruptible only under very special
/*
* A child will be uninterruptible only under very special