こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ロックファイルについて

検証をかけたところロック中になってしまいます。
自分ではわからないので…すいませんが確認をお願いいたします。
#▼ロックファイル
sub lock {
$symlink_check = (eval { symlink("",""); }, $@ eq "");
if (!$symlink_check) {
$c = 0;
while(-f "$LOC") {
$c++;
if ($c >= 3) { &error("■ロック中"); }
sleep(2);
}
open(LOCK,">$LOC");
close(LOCK);
}
else {
local($retry) = 3;
while (!symlink(".", $LOC)) {
if (--$retry <= 0) { &error("■ロック中"); }
sleep(2);
}
}
}

sub COPY { $COPY="<div align=right><a

href=http://www.jline.co.jp/fn/></a></div>";}

sub error {
if (-e "$LOC") { unlink($LOC); }
print "Content-type: text/html\n\n";
print "<html><head><title>$TITLE</title></head>\n";
print "<body>\n";
print "■エラー<hr>\n";
print "$_[0]\n";
print "</body></html>\n";
exit;
}

投稿日時 - 2004-06-26 02:35:55

QNo.905337

暇なときに回答ください

質問者が選んだベストアンサー

何度CGIを実行してもロックされたままになってしまうということですか?
原因としては、
・CGIが正規の手順で終了せず(エラーやタイムアウト、シグナル)、ロックに使っているシンボリックリンクが消えていない。
・ロック機構そのものに終了後にシンボリックリンクを消す作業がない(作った人の初歩的ミス)

少なくとも提示された部分だけでは後者が当てはまると思われます。(後者が当てはまるなら恐らく前者も当てはまることになりますが)

このCGIを作った人に尋ねてはいかかですか?(その人のミスであれば、今後のためにも本人に言ったほうがよいので)
「自分ではわからないので…」ということはあなたが書いたものじゃないですよね?

投稿日時 - 2004-06-26 14:26:31

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問