6 #--------------------------------------------------------------------------------------
8 # Utility script for batch queue functions.
10 #--------------------------------------------------------------------------------------
14 # Put command(s) in given queue; do not submit job.
17 # \param 2-N command(s)
24 echo -n "$*;" >> $queue_name
29 # Put command(s) in given queue and submit job.
32 # \param 2-N command(s)
39 echo "$*" >> $queue_name
56 if [[ -e $queue_name ]]; then
58 if [[ -p $queue_name ]]; then
59 fatal "Queue $queue_name in use."
63 mkfifo $queue_name # create a new FIFO
66 fd=7 # file descriptor
68 eval "exec $fd<>$queue_name" # attach file descriptor to FIFO
70 while read job <& $fd; do # read job from file descriptor
72 if [[ -n $job ]]; then
74 if [[ $job = "exit" ]]; then
79 eval exec $job & # submit job
83 while (( ${#jobstates} >= $queue_size )); do
89 rm -f $queue_name # remove FIFO