3 . "$_EXEC/cgilite/storage.sh"
4 . "$_EXEC/cgilite/session.sh"
6 LOCK_TIMEOUT="${LOCK_TIMEOUT:-1200}"
9 local file="$1" timeout="${2:-$LOCK_TIMEOUT}"
12 printf "%i %s\n" "$_DATE" "$SESSION_ID" >>"${file}.lock"
14 if ! read date sid <"${file}.lock"; then
15 debug "Unable to access lock: ${file}.lock"
17 elif [ $((date + timeout)) -lt $_DATE ]; then
19 if LOCK "${file}.lock" 1; then
20 debug "Overriding stale lock: ${file}.lock"
21 printf "%i %s\n" "$_DATE" "$SESSION_ID" >"${file}.lock"
22 RELEASE "${file}.lock"
28 elif [ "$sid" = "$SESSION_ID" -a "$date" -ne "$_DATE" ]; then
30 printf "%i %s\n" "$_DATE" "$SESSION_ID" >"${file}.lock"
33 elif [ "$sid" = "$SESSION_ID" ]; then
43 local file="$1" timeout="${2:-$LOCK_TIMEOUT}"
46 if ! read date sid <"${file}.lock"; then
50 elif [ "$sid" = "$SESSION_ID" -a $((date + timeout)) -lt $_DATE ]; then
51 # if lock is stale, protect against stale override before release
52 if LOCK "${file}.lock" 1; then
54 RELEASE "${file}.lock"
60 elif [ "$sid" = "$SESSION_ID" ]; then