#!/bin/bash

[ "${__DEBUG:-}" = TRUE ] \
	&& { set +x; __DEBUG=FALSE; __SILENT=FALSE; . /opt/fox_utils/crab_sys.sh; }

### echo "$0 $@ [$$] START" >&2
### --help Info: Атомарная разблокировка
### --help Usage: __unlock $lockfile $pid
### --help Example: __unlock /tmp/myname.lock $$

set -eu
lock=${1//.lock/}
lock=${lock}.lock
FLOCK="${lock/.lock/.atomic.tmp}"
# возможно наш каталог уже удалили
[ ! -f "$FLOCK" ] && exit 0
touch $FLOCK
exec 9>>$FLOCK
flock -w 10 -x 9
if [ -f $lock ]; then
	read pid tmp < $lock || true
	if [ ! -d /proc/${pid:-none}/ ]; then
		rm -f $lock
	elif [ "${2:-$PPID}" = "$pid" ]; then
		rm -f $lock
	fi
fi
flock -u 9
### echo "$0 $@ [$$] SUCCESS" >&2
exit 0
