# Author : Chris Koeritz
# Rights : Copyright (C) 2015-$now by Author
#
-# Purpose:
+# Purpose:
#
-# Turns Unix format text files into DOS format text files.
-# relies on the built-in process management to run a bunch of processes
-# in the background, but will limit total number running to a maximum.
-# demonstration method at the end of the file shows how to use the
-# process managing methods.
+# Relies on the built-in process management in bash to run a bunch of
+# processes in the background, but will limit total number running to a
+# maximum count. There is a demonstration method at the end of the file
+# that shows how to use the process management functions.
#
##############
# This script is free software; you can modify/redistribute it under the terms
# Feel free to send updates to: [ fred@gruntose.com ]
##############
-# process manager helper methods for bash.
-#
-# relies on the built-in process management to run a bunch of processes
-# in the background, but will limit total number running to a maximum.
-# demonstration method at the end of the file shows how to use the
-# process managing methods.
-#
-# by chris koeritz
-
#hmmm: revisions desired someday:
# + allow number of max processes to be passed in.
# +
{
start_background_action \
'echo "your nechung oracle pronouncement of the moment..."' \
- '$BINDIR/nechung'
+ '$FEISTY_MEOW_BINARIES/nechung'
}
-function login_on_xcg()
+function sum_dir()
{
start_background_action \
'echo "summing directory output coming up..."' \
echo "done waiting, background process count is down to $bg_count."
}
+#hmmm: the demo app here raises some concerns--how do we know the bg count is right?
+# what if something died and we didn't check it?
+# will the thing that looks at bg count adjust it if there are actually no waiting processes?
+
# happily launches off different actions as background processes.
launcher_demonstrator()
{
- while true; do
+ # run a limited number of loops, since we don't want to do this forever.
+ local loops=50
+ while ((loops-- > 0)); do
# pick a thing to do.
which=$(($RANDOM % 3))
#hmmm: not asynch yet! make it so!
case $which in
0) take_inventory;;
1) nechung;;
- 2) login_on_xcg;;
+ 2) sum_dir;;
esac
# we have reached the limit on processes and need to wait for a few, defined by