Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
qlib.sh File Reference

Go to the source code of this file.

Functions

function put_queue ()
 
function puts_queue ()
 
function queue ()
 

Function Documentation

function put_queue ( )

Definition at line 19 of file qlib.sh.

20 {
21  queue_name=$1
22  shift
23 
24  echo -n "$*;" >> $queue_name
25 }
then echo
alias put_queue eval echo n
Definition: qlib.csh:19
function puts_queue ( )

Definition at line 34 of file qlib.sh.

35 {
36  queue_name=$1
37  shift
38 
39  echo "$*" >> $queue_name
40 }
then echo
function queue ( )

Definition at line 50 of file qlib.sh.

51 {
52  queue_name=$1
53  queue_size=$2
54  sleep_time=$3
55 
56  if [[ -e $queue_name ]]; then
57 
58  if [[ -p $queue_name ]]; then
59  fatal "Queue $queue_name in use."
60  fi
61  else
62 
63  mkfifo $queue_name # create a new FIFO
64  fi
65 
66  fd=7 # file descriptor
67 
68  eval "exec $fd<>$queue_name" # attach file descriptor to FIFO
69 
70  while read job <& $fd; do # read job from file descriptor
71 
72  if [[ -n $job ]]; then
73 
74  if [[ $job = "exit" ]]; then
75  break
76  fi
77 
78  notice "submit $job"
79  eval exec $job & # submit job
80 
81  # wait for free slot
82 
83  while (( ${#jobstates} >= $queue_size )); do
84  sleep $sleep_time
85  done
86  fi
87  done
88 
89  rm -f $queue_name # remove FIFO
90 }
bool read(Vec &v, std::istream &is)
Read a Vec(tor) from a stream.
Definition: io_ascii.hh:141
do set_array DAQHEADER JPrintDAQHeader f
Definition: JTuneHV.sh:74
then JCalibrateToT a
Definition: JTuneHV.sh:103
alias put_queue eval echo n
Definition: qlib.csh:19
esac done
Definition: JAddHDE.sh:21