summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorPawel Jakub Dawidek <pjd@FreeBSD.org>2020-01-26 10:51:57 +0000
committerPawel Jakub Dawidek <pjd@FreeBSD.org>2020-01-26 10:51:57 +0000
commit3f50bbaf51f0cc6e9eebae0161f526324e7a9366 (patch)
tree72df594c22519d2a13107c59afc47b2717747852 /bin
parent532b3f47916726029a5bc2df405089de9c6d7c0d (diff)
downloadsrc-test2-3f50bbaf51f0cc6e9eebae0161f526324e7a9366.tar.gz
src-test2-3f50bbaf51f0cc6e9eebae0161f526324e7a9366.zip
Notes
Diffstat (limited to 'bin')
-rw-r--r--bin/pwait/pwait.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/bin/pwait/pwait.c b/bin/pwait/pwait.c
index e31db4dded1f..4507aad99f27 100644
--- a/bin/pwait/pwait.c
+++ b/bin/pwait/pwait.c
@@ -66,7 +66,7 @@ main(int argc, char *argv[])
int kq;
struct kevent *e;
int tflag, verbose;
- int opt, nleft, n, i, duplicate, status;
+ int opt, nleft, n, i, status;
long pid;
char *s, *end;
double timeout;
@@ -135,18 +135,19 @@ main(int argc, char *argv[])
warnx("%s: bad process id", s);
continue;
}
- duplicate = 0;
- for (i = 0; i < nleft; i++)
+ for (i = 0; i < nleft; i++) {
if (e[i].ident == (uintptr_t)pid)
- duplicate = 1;
- if (!duplicate) {
- EV_SET(e + nleft, pid, EVFILT_PROC, EV_ADD, NOTE_EXIT,
- 0, NULL);
- if (kevent(kq, e + nleft, 1, NULL, 0, NULL) == -1)
- warn("%ld", pid);
- else
- nleft++;
+ break;
+ }
+ if (i < nleft) {
+ /* Duplicate. */
+ continue;
}
+ EV_SET(e + nleft, pid, EVFILT_PROC, EV_ADD, NOTE_EXIT, 0, NULL);
+ if (kevent(kq, e + nleft, 1, NULL, 0, NULL) == -1)
+ warn("%ld", pid);
+ else
+ nleft++;
}
if (tflag) {