Sicherung wenn /proc nicht gemountet ist, und NUMCPU damit nicht gesetzt wird.

Im Dispatcher wird dann zumindest 1 Executor gestartet.
Executer legt jetzt Semaphoren file an, um gleichzeitige lese Zugriffe
auf den cmd fifo zu vermeiden - dat jibt naemlich datensalat.



git-svn-id: svn://svn.compuextreme.de/Viitor/V962/ViitorMake@4597 504e572c-2e33-0410-9681-be2bf7408885
This commit is contained in:
kueller 2009-04-20 17:43:33 +00:00
parent 261f1dc3f3
commit 26b0ec1ad8

View File

@ -615,7 +615,12 @@ MakeFifo() {
ExecCommand() { ExecCommand() {
echo "1" >&8 echo "1" >&8
while true; do while true; do
while [ -f $SEMAPHORE ]; do
sleep 1
done
touch $SEMAPHORE
read <&9 COMMAND read <&9 COMMAND
rm $SEMAPHORE
if [ "$COMMAND" == "wshutdown" ]; then if [ "$COMMAND" == "wshutdown" ]; then
return 0 return 0
else else
@ -633,10 +638,16 @@ ExecCommand() {
InitDispatch() { InitDispatch() {
FREEF=`MakeFifo` FREEF=`MakeFifo`
CMDF=`MakeFifo` CMDF=`MakeFifo`
SEMAPHORE=`mktemp`
rm $SEMAPHORE
exec 8<>$FREEF exec 8<>$FREEF
exec 9<>$CMDF exec 9<>$CMDF
EXECPROCNUM=$NUMCPU EXECPROCNUM=$NUMCPU
if [ ! $EXECPROCNUM ]; then
EXECPROCNUM=1
fi
NUMCMD=1 NUMCMD=1
echo "Starting $NUMCPU Executors"
while [ ${NUMCMD} -le $EXECPROCNUM ]; do while [ ${NUMCMD} -le $EXECPROCNUM ]; do
ExecCommand & ExecCommand &
(( NUMCMD++ )) (( NUMCMD++ ))