From: WATANABE Hirofumi Date: 1998-07-28T16:58:43+09:00 Subject: [ruby-list:8933] Re: stty raw -echo わたなべです. senda@ic.rdc.ricoh.co.jp writes: :watanabe> ロックファイルとして symlink ではなくロックディレクトリとし :watanabe> て mkdir を使えばまず問題ないと思います. : :つまり、 : Cygwin版 : stty -- set CYGWIN32=ttyが必要。使える。 : symlink -- rubyスクリプト(またはそのほかのCygwin版プロ : グラム)だけが認識できればいいのであれば : lockとして使える。 Cygwin32 API の symlink はたんなるエミュレーションなので file の lock には使えません. たとえ Cygwin32 で閉じてても. というか File.symlink("a", "b") File.symlink("c", "b") してみるとなんでそうなるのと思ってしまうくらい変です. #たぶん CYGWIN DLL のバグ. lib/tempfile.rb はこんな感じにすると symlink が使えなくても 動くようになると思います. --- tempfile.rb.orig Thu Mar 26 09:47:40 1998 +++ tempfile.rb Tue Jul 28 16:40:41 1998 @@ -21,8 +21,8 @@ if File.exist?(path) File.unlink(path) end - if File.exist?(path + '.lock') - File.unlink(path + '.lock') + if File.directory?(path + '.lock') + Dir.rmdir(path + '.lock') end print "done\n" } @@ -36,7 +36,7 @@ begin @tmpname = sprintf('%s/%s.%d.%d', tmpdir, basename, $$, n) unless File.exist?(@tmpname) - File.symlink(tmpdir, @tmpname + '.lock') + Dir.mkdir(@tmpname + '.lock') break end rescue @@ -51,7 +51,7 @@ @tmpfile = File.open(@tmpname, 'w+') super(@tmpfile) - File.unlink(@tmpname + '.lock') + Dir.rmdir(@tmpname + '.lock') ensure File.umask(umask) end