#!/bin/bash checkworkers() { for key in ${!workers[@]} do if ! kill -0 ${workers[key]} 2>/dev/null then taskid=${workertasks[key]} (( ++ran )) (( active-- )) if destroyworker $key then finishedtasks+=($taskid) else failedtasks+=($taskid) (( ++failed )) fi unset workertasks[key] fi done }