From f9291765b363809ff4e75ff441d374ecef3ad40a Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 14 Jun 2026 00:00:10 +0300 Subject: km0 harden parallel job pool --- src/lib/image.source.sh | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/lib/image.source.sh') diff --git a/src/lib/image.source.sh b/src/lib/image.source.sh index c190b87..f7cb715 100644 --- a/src/lib/image.source.sh +++ b/src/lib/image.source.sh @@ -66,15 +66,32 @@ warn_unsupported_incoming_files() { scalephotos() { local -i failed=0 local -a image_job_pids=() + # Passed by name to wait_for_image_job_slot and wait_for_image_jobs. + # shellcheck disable=SC2034 + local -A image_job_labels=() + # Passed by name to wait_for_image_job_slot and wait_for_image_jobs. + # shellcheck disable=SC2034 + local -A image_job_statuses=() local photo while IFS= read -r photo; do - wait_for_image_job_slot image_job_pids failed + wait_for_image_job_slot \ + image_job_pids \ + image_job_statuses \ + image_job_labels \ + failed scale_photo "$photo" & image_job_pids+=("$!") + # Read through a nameref in the job-pool helpers. + # shellcheck disable=SC2034 + image_job_labels["$!"]="image job for photo $photo" done < <(incoming_image_files) - wait_for_image_jobs image_job_pids failed + wait_for_image_jobs \ + image_job_pids \ + image_job_statuses \ + image_job_labels \ + failed if (( failed != 0 )); then return 1 fi -- cgit v1.2.3