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