Switch to $! for make.sh process enumeration.
authorRob Landley <rob@landley.net>
Fri, 26 Feb 2016 06:22:15 +0000 (00:22 -0600)
committerSemun Lee <semun.lee@samsung.com>
Wed, 3 Jul 2019 09:02:10 +0000 (18:02 +0900)
scripts/make.sh

index 7ebe148..6c03b80 100755 (executable)
@@ -245,17 +245,17 @@ do
   LFILES="$LFILES $OUT"
   [ "$OUT" -nt "$i" ] && continue
   do_loudly $BUILD -c $i -o $OUT &
+  PENDING="$PENDING $!"
 
   # ratelimit to $CPUS many parallel jobs, detecting errors
 
   while true
   do
-    PENDING="$(echo $PENDING $(jobs -rp) | tr ' ' '\n' | sort -u)"
-    [ $(echo -n "$PENDING" | wc -l) -lt "$CPUS" ] && break;
+    [ $(echo "$PENDING" | wc -w) -lt "$CPUS" ] && break;
 
-    wait $(echo "$PENDING" | head -n 1)
+    wait $(echo "$PENDING" | awk '{print $1}')
     DONE=$(($DONE+$?))
-    PENDING="$(echo "$PENDING" | tail -n +2)"
+    PENDING="$(echo "$PENDING" | sed 's/^ *[0-9]*//')"
   done
   [ $DONE -ne 0 ] && break
 done