分页: 1 / 1

bash,上锁

发表于 : 2016-10-22 21:20
自由建客
好像还是有点问题

代码: 全选

# no arg
Lock()
{
	for time in 0.3 0.7 1.1 1.7 2.3 3.1 4.1 0
	do
		if [ -e "$LOCK_FILE" ]; then
			sleep $time
		else
			touch "$LOCK_FILE"
			return 0
		fi
	done
	while :
	do
		if [ -e "$LOCK_FILE" ]; then
			sleep 5.3
		else
			touch "$LOCK_FILE"
			return 0
		fi
	done
}

# no arg
UnLock()
{
	rm "$LOCK_FILE"
}

Re: bash,上锁

发表于 : 2016-10-22 21:48
lilydjwg
TOCTTOU

还是用 flock 吧。

Re: bash,上锁

发表于 : 2016-10-22 22:27
自由建客
lilydjwg 写了:TOCTTOU

还是用 flock 吧。
果然好用 :em11