--- alsasound.old 2005-05-28 01:01:35.000000000 +0200 +++ alsasound 2005-05-28 01:04:56.000000000 +0200 @@ -129,19 +129,22 @@ if [[ ! -d /proc/asound || -n "$(grep ' no soundcards ' /proc/asound/cards)" ]] ; then eerror "ERROR: Failed to load necessary drivers" fi } -unload_modules() { - local LOADED_MODULES="$(/sbin/lsmod | grep -E "^snd" | awk '{print $1}')" - local MODULE - for MODULE in ${LOADED_MODULES} - do - /sbin/rmmod ${MODULE} >& /dev/null +unload_modules() +{ + MODULES="$(/sbin/lsmod | grep -E "^snd" | awk '{print $1}')" + + while [[ "" != `lsmod | grep "^snd"` && $TRIES != "111111111" ]]; + do + TRIES=${TRIES}1 + /sbin/rmmod $MODULES >& /dev/null + /sbin/rmmod soundcore >& /dev/null + /sbin/rmmod gameport >& /dev/null + sleep 0.5 done - /sbin/rmmod soundcore >& /dev/null - /sbin/rmmod gameport >& /dev/null # Return success if the modules are unloaded [[ -z "$(/sbin/lsmod | grep -E "^snd" | awk '{print $1}')" ]] }