Mercurial > hg > toybox
comparison scripts/make.sh @ 1458:4428d64c0c40 draft
Don't hang for $CPUS=1.
echo prints a newline if it has nothing to print, so wc -l always returns at least 1. Fix: echo -n
author | Rob Landley <rob@landley.net> |
---|---|
date | Thu, 04 Sep 2014 00:23:51 -0500 |
parents | ab91ee85afbd |
children | aa0ae038e275 |
comparison
equal
deleted
inserted
replaced
1457:d9e937417636 | 1458:4428d64c0c40 |
---|---|
197 # ratelimit to $CPUS many parallel jobs, detecting errors | 197 # ratelimit to $CPUS many parallel jobs, detecting errors |
198 | 198 |
199 while true | 199 while true |
200 do | 200 do |
201 PENDING="$(echo $PENDING $(jobs -rp) | tr ' ' '\n' | sort -u)" | 201 PENDING="$(echo $PENDING $(jobs -rp) | tr ' ' '\n' | sort -u)" |
202 [ $(echo "$PENDING" | wc -l) -lt "$CPUS" ] && break; | 202 [ $(echo -n "$PENDING" | wc -l) -lt "$CPUS" ] && break; |
203 | 203 |
204 wait $(echo "$PENDING" | head -n 1) || exit 1 | 204 wait $(echo "$PENDING" | head -n 1) || exit 1 |
205 PENDING="$(echo "$PENDING" | tail -n +2)" | 205 PENDING="$(echo "$PENDING" | tail -n +2)" |
206 done | 206 done |
207 done | 207 done |