diff options
-rw-r--r-- | xe.c | 10 |
1 files changed, 9 insertions, 1 deletions
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; |