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