Task sync
William E. Davidsen Jr
davidsen at steinmetz.ge.com
Fri Jul 29 06:43:38 AEST 1988
In article <11658 at steinmetz.ge.com> I write:
|
| I have a problem which requires running a number of similar programs,
| then a final program. It's not a make, but the solution might be applied
| there, too.
Well about 30 people have written to say that all I do is keep a PID
table, so I guess I didn't clarify the question very well. What I need
to do is something like the 'batch' command, in that the commands to be
run will not be started by the same processes, at least on its own.
I need to be able to handle a number of commands, possibly from a
number of other programs, in a portable way.
On SysV I have a kludge which reads a named pipe and when it gets a
command it either starts a process to execute it or waits for an
existing process to complete. I never worked on getting the status back
to the submitter, because I don't seem to find named pipes on all (or
even most) BSD systems.
What I have now is more or less a daemon to run jobs, although I would
be willing to implement almost anything which will work. I certainly
don't mind having some code which is used for BSD and some for SysV, but
I don't want to use non-portable features and have every few lines be
more stuff in an ifdef.
Here's one way to use it:
for file in *.mu
do runsome -3 ioproc $file
# ^^^^^^^ A ^^^^^^^^^^^^^^^^
# what I need | the command
# max to run
done
runwait
^^^^^^^
# wait for all to stop
It could also go in a make file:
# compile three at a time
.c.o: runsome -3 $(CC) $< -c
prog: $(OBJFILES)
runwait
cc $(LFLAGS) $(OBJFILES) -o prog
what I have now is more or less:
pipename=`runsome 3` # run just three
for file in *.c
do echo "indent ${file}" > ${pipename}
done
runwait ${pipename}
Thanks again to all who responded, I mailed thanks to all but some
bounced, and hopefully this time I have explained better.
--
bill davidsen (wedu at ge-crd.arpa)
{uunet | philabs | seismo}!steinmetz!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me
More information about the Comp.unix.wizards
mailing list