From aed173459e4004022deae04619ab42edd5830d30 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Thu, 2 Nov 2017 13:55:24 +0100 Subject: wait for enough jobs to finish before asking for more input This helps -F fail immediately after execution, not after reading the next line. --- xe.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'xe.c') diff --git a/xe.c b/xe.c index 100d196..25e6aa0 100644 --- a/xe.c +++ b/xe.c @@ -681,10 +681,15 @@ main(int argc, char *argv[], char *envp[]) exit(1); } - while ((arg = getarg())) { + while (1) { buflen = 0; argslen = 0; + while (runjobs >= maxjobs) + mywait(); + if (!(arg = getarg())) + break; + int n; for (n = optind, i = n + 1; n < cmdend; n = i + 1) { char *pat = argv[n]; @@ -721,6 +726,9 @@ main(int argc, char *argv[], char *envp[]) while (1) { // check if there is an arg from a previous iteration if (!keeparg) { + while (runjobs >= maxjobs) + mywait(); + arg = getarg(); if (!arg) break; -- cgit 1.4.1