Changeset 576 for trunk


Ignore:
Timestamp:
12/20/2011 14:36:11 (5 months ago)
Author:
blee
Message:

Create filedb_lock_if_exists function and use that everywhere except
filedb creation.

See #152

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libfiledb.sh.in

    r575 r576  
    106106} 
    107107 
     108# Purpose: Recursively lock a filedb if it exists 
     109# Inputs: filedb 
     110# Prints: "recursive" or "original" depending on the type of lock acquired 
     111# Returns: 0 if the filedb was locked, 2 on error 
     112filedb_lock_if_exists() 
     113{ 
     114        if [ $# -ne 1 ]; then 
     115                return 2 
     116        fi 
     117 
     118        local filedb="$1" 
     119 
     120        local lock_type 
     121 
     122        lock_type=`filedb_lock "${filedb}"` || return 2 
     123 
     124        [ -f "${filedb}" ] && 
     125                echo "${lock_type}" && 
     126                return 0 
     127 
     128        filedb_unlock "${filedb}" "${lock_type}" 
     129        return 2 
     130} 
     131 
    108132# Purpose: Unlock a filedb 
    109133# Inputs: filedb, lock type 
     
    170194        local lock_type 
    171195 
    172         lock_type=`filedb_lock "${filedb}"` || return 2 
     196        lock_type=`filedb_lock_if_exists "${filedb}"` || return 2 
    173197 
    174198        awk -F '\0' '{print $1}' "${filedb}" && 
     
    194218        local lock_type 
    195219 
    196         lock_type=`filedb_lock "${filedb}"` || return 2 
     220        lock_type=`filedb_lock_if_exists "${filedb}"` || return 2 
    197221 
    198222        awk -F '\0' '{print $2}' "${filedb}" && 
     
    220244        local rv 
    221245 
    222         lock_type=`filedb_lock "${filedb}"` || return 2 
     246        lock_type=`filedb_lock_if_exists "${filedb}"` || return 2 
    223247 
    224248        awk -F '\0' '{if ($1 == "'"${key}"'") {_assert_exit = 1; exit}}; END {if (_assert_exit) exit 0; exit 1}' "${filedb}" 
     
    251275        local value 
    252276 
    253         lock_type=`filedb_lock "${filedb}"` || return 2 
     277        lock_type=`filedb_lock_if_exists "${filedb}"` || return 2 
    254278 
    255279        filedb_key_exists "${filedb}" "${key}" && 
     
    279303        local line 
    280304 
    281         lock_type=`filedb_lock "${filedb}"` || return 2 
     305        lock_type=`filedb_lock_if_exists "${filedb}"` || return 2 
    282306 
    283307        line=`awk -F '\0' '{if ($1 == "'"${key}"'") print NR}' "${filedb}"` && 
     
    308332        local rv 
    309333 
    310         lock_type=`filedb_lock "${filedb}"` || return 2 
     334        lock_type=`filedb_lock_if_exists "${filedb}"` || return 2 
    311335 
    312336        filedb_key_exists "${filedb}" "${key}" 
Note: See TracChangeset for help on using the changeset viewer.