Changeset 483 for branches/confman-1.9/confmanlib.sh.in
- Timestamp:
- 11/11/2009 14:19:10 (3 years ago)
- Location:
- branches/confman-1.9
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
confmanlib.sh.in (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/confman-1.9
-
branches/confman-1.9/confmanlib.sh.in
r481 r483 131 131 132 132 function conf_lock_wcopy { 133 local locktype 133 134 conf_require_wcopy 134 ${LOCK} lock $$ $(conf_wcopy_lockfile) || exit 1 135 136 # If this process already has a lock on the wcopy 137 if conf_wcopy_is_locked; then 138 locktype="RECURSIVE" 139 else 140 locktype="ORIGINAL" 141 fi 142 143 ${LOCK} lock $$ $(conf_wcopy_lockfile) || die 135 144 WCOPY_DIRTY="true" 145 echo $locktype 136 146 } 137 147 138 148 function conf_unlock_wcopy { 139 local recursive_lock="$1" 140 141 # Don't release the lock if it was grabbed recursively 142 [ -n "$recursive_lock" ] && [ "$recursive_lock" = "1" ] && return 143 144 ${LOCK} unlock $$ $(conf_wcopy_lockfile) 149 local locktype="$1" 150 151 if [ "$locktype" = "RECURSIVE" ] ; then 152 return 0 153 elif [ "$locktype" = "ORIGINAL" ] ; then 154 ${LOCK} unlock $$ $(conf_wcopy_lockfile) 155 return $? 156 else 157 echo "Invalid lock type in conf_unlock_wcopy" >&4 158 die 159 fi 145 160 } 146 161 … … 150 165 151 166 function conf_lock_system { 152 ${SUDO} ${LOCK} lock $$ "$LOCKFILE" || exit 1 167 local locktype 168 169 # If this process already has a lock on the wcopy 170 if conf_system_is_locked; then 171 locktype="RECURSIVE" 172 else 173 locktype="ORIGINAL" 174 fi 175 176 ${SUDO} ${LOCK} lock $$ "$LOCKFILE" || die 177 echo $locktype 153 178 } 154 179 155 180 function conf_unlock_system { 156 ${SUDO} ${LOCK} unlock $$ "$LOCKFILE" 181 local locktype="$1" 182 183 if [ "$locktype" = "RECURSIVE" ] ; then 184 return 0 185 elif [ "$locktype" = "ORIGINAL" ] ; then 186 ${SUDO} ${LOCK} unlock $$ "$LOCKFILE" 187 return $? 188 else 189 echo "Invalid lock type in conf_unlock_system" >&2 190 die 191 fi 157 192 } 158 193 159 194 function conf_system_is_locked { 160 195 ${LOCK} haslock $$ "$LOCKFILE" 196 } 197 198 function conf_lock_is_recursive { 199 local locktype="$1" 200 case "$locktype" in 201 ORIGINAL) return 1;; 202 RECURSIVE) return 0;; 203 *) echo "Invalid lock type in conf_lock_is_recursive" >&2 204 die 205 ;; 206 esac 161 207 } 162 208 … … 1058 1104 echo "Received a signal. Exiting cleanly." | conf_logger 1059 1105 echo "Please wait until I finish cleaning up after you." >&4 1060 conf_cleanExit 1106 conf_cleanExit 1 1061 1107 } 1062 1108 … … 1070 1116 1071 1117 conf_debug "Removing any system or working copy locks..." >&4 1072 conf_wcopy_is_locked && conf_unlock_wcopy 1073 conf_system_is_locked && conf_unlock_system 1118 conf_wcopy_is_locked && conf_unlock_wcopy ORIGINAL 1119 conf_system_is_locked && conf_unlock_system ORIGINAL 1074 1120 1075 1121 # And this clears any locks we may have created on our working copy:
Note: See TracChangeset
for help on using the changeset viewer.
