summaryrefslogtreecommitdiff
path: root/src/lib/image.source.sh
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-06-14 00:00:10 +0300
committerPaul Buetow <paul@buetow.org>2026-06-14 00:00:10 +0300
commitf9291765b363809ff4e75ff441d374ecef3ad40a (patch)
tree9639677a5908469e16e67ccf0641a12d3f703c6e /src/lib/image.source.sh
parentd4971998edae804c39797486be7a342d43e61e5c (diff)
km0 harden parallel job pool
Diffstat (limited to 'src/lib/image.source.sh')
-rw-r--r--src/lib/image.source.sh21
1 files changed, 19 insertions, 2 deletions
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