On Sunday 03 June 2012 18:16:30 Zac Medico wrote: > On 06/02/2012 10:08 PM, Mike Frysinger wrote: > > # @FUNCTION: _multijob_fork # @INTERNAL # @DESCRIPTION: # Do the > > actual book keeping. _multijob_fork() { [[ $# -eq 1 ]] || die > > "incorrect number of arguments" > > > > local ret=0 [[ $1 == "pre" ]] && : $(( ++mj_num_jobs )) > > if [[ ${mj_num_jobs} -ge ${mj_max_jobs} ]] ; then > > multijob_finish_one > > ret=$? > > fi > > [[ $1 == "post" ]] && : $(( ++mj_num_jobs )) > > return ${ret} > > The "pre" logic seems wrong. Consider an initial state of > mj_num_jobs=0 and mj_max_jobs=1. It will increment mj_num_jobs to 1, > so [[ 1 -ge 1 ]] is true, and then call multijob_finish_one even > though no jobs have started yet? Wouldn't that deadlock > multijob_finish_one, as it waits for a reply from a job that doesn't > exist yet?
yes, i inverted the cases in this func -mike
signature.asc
Description: This is a digitally signed message part.