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
48# \param 3 sleep time [s]
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