Article Listing 1 Listing 2 Listing 3 Listing 4
Listing 5 Listing 6 Listing 7 Listing 8 Listing 9
Listing 10 Listing 11 Listing 12 Listing 13 Sidebar aug2004.tar

Listing 9 get_semaphore_value

{
    local FUNC_NAME=get_sem_value
    ${TRACE:-trace $FUNC_NAME $@}

    local semaphore=$1
    local resources_file=$HOME_DIR/$semaphore/$RESOURCES_FILENAME
    local resources_dir=$HOME_DIR/$semaphore/$RESOURCES_DIRNAME

    assert_semaphore $semaphore

    integer num_resources=$(cat -s $resources_file)
    integer num_taken_resources=$(ls -1 $resources_dir | wc -l)
    echo $(( $num_resources - $num_taken_resources ))
}