svn commit: r216199 - head/bin/sh
Jilles Tjoelker
jilles at FreeBSD.org
Sun Dec 5 16:09:03 UTC 2010
Author: jilles
Date: Sun Dec 5 16:09:03 2010
New Revision: 216199
URL: http://svn.freebsd.org/changeset/base/216199
Log:
sh: jobs -p: Do not ask the kernel for the pgid.
The getpgid() call will fail if the first process in the job has already
terminated, resulting in output of "-1".
The pgid of a job is always the pid of the first process in the job and
other code already relies on this.
Modified:
head/bin/sh/jobs.c
Modified: head/bin/sh/jobs.c
==============================================================================
--- head/bin/sh/jobs.c Sun Dec 5 10:15:23 2010 (r216198)
+++ head/bin/sh/jobs.c Sun Dec 5 16:09:03 2010 (r216199)
@@ -308,7 +308,6 @@ showjob(struct job *jp, pid_t pid, int m
struct procstat *ps;
struct job *j;
int col, curr, i, jobno, prev, procno;
- pid_t ppid;
char c;
procno = (mode == SHOWJOBS_PGIDS) ? 1 : jp->nprocs;
@@ -323,9 +322,7 @@ showjob(struct job *jp, pid_t pid, int m
#endif
for (ps = jp->ps ; ; ps++) { /* for each process */
if (mode == SHOWJOBS_PIDS || mode == SHOWJOBS_PGIDS) {
- ppid = (mode == SHOWJOBS_PIDS) ? ps->pid :
- getpgid(ps->pid);
- out1fmt("%d\n", (int)ppid);
+ out1fmt("%d\n", (int)ps->pid);
goto skip;
}
if (mode != SHOWJOBS_VERBOSE && ps != jp->ps && pid == 0)
More information about the svn-src-head
mailing list