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