[#46595] nokogiriがインストールできない — Soichi Ishida <zau_777_emacs@...>
7 messages
2009/12/02
[#46602] プログラミング学習について — 清重 愛一郎 <loveone6@...>
初めまして、清重愛一郎と申します。大学生です。
10 messages
2009/12/03
[#46608] Ruby Shoesはどこからdownloadできますか? — 島村竜一 <shimamura@...>
はじめまして
6 messages
2009/12/05
[#46621] エラー([BUG])の追いかけ方 — "(株)ネットフォレスト 植田裕之" <ueda@...>
植田と申します。
6 messages
2009/12/07
[#46639] 動的HTMLからデータを取得 — Soichi Ishida <zau_777_emacs@...>
7 messages
2009/12/16
[#46647] RubyでWindowsの常駐サービスプログラムを作る方法 — kouichi_someya@...
はじめまして。
12 messages
2009/12/16
[#46649] Re: RubyでWindowsの常駐サービスプログラムを作る方法
— "U.Nakamura" <usa@...>
2009/12/17
こんにちは、なかむら(う)です。
[#46651] Re: RubyでWindowsの常駐サービスプログラムを作る方法
— 田口 浩 <h-taguchi@...>
2009/12/17
田口と申します。
[#46650] xpathについて — Soichi Ishida <zau_777_emacs@...>
6 messages
2009/12/17
[#46666] TCPSocket#peeraddr に時間がかかる。 — "5.5" <5.5@...>
5.5 です。
6 messages
2009/12/19
[#46667] Ruby/TkのTkHTMLを扱う際にsegmentation fault — 上野宏法 <ronor.u@...>
はじめまして。Ronorと申します。
5 messages
2009/12/19
[#46673] Ruby/GTK2でキー入力イベントをソフトウェア的に発生できません。 — Tomokiyo Nomura <tnomura@...>
野村@延岡です。
4 messages
2009/12/20
[#46674] 子プロセスを kill する方法は? — "Hideo Konami" <konami@...>
小波です。
7 messages
2009/12/21
[#46690] Float::INFINITY — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
きしもとです
10 messages
2009/12/22
[ruby-list:46591] Re: IO#flock
From:
"5.5" <5.5@...>
Date:
2009-12-01 14:35:12 UTC
List:
ruby-list #46591
5.5 です。
神戸さん,成瀬さん,なかむら(う)さん,ありがとうございました。
以下のようなことは理解しました。
・Ruby の知識以前に,ファイルシステムの理解が不足していたこと。
・flock はファイルをロックする仕組みではないこと。
・すべてのプロセスが flock を使わないと意味がないこと。
・IO#seek を使ってファイルポインターを末尾に動かしてやらないと
いけないこと。
・Ruby 1.9.1 revision 24175 では正しく動作しないこと。
それと,成瀬さんにご提示いただいたコードで,今回の目的は達せら
れました。
まだ理解が十分でないところはこれから勉強します。
あらためて,PStore の transaction の楽さを感じました。
なお,Ruby 1.9.1 での PStore の問題は,
> この件については、trunkで修正済みの問題のbackport漏れですので、
> そういうことで対応します、というか、してもらうつもりです。
とのことですが,参考のため,いちおう再現コードをお書きします。
-- p1.rb
require 'pstore'
db=PStore.new("sample.db")
db.transaction do
db["root"]=[1]
sleep 5
db["root"] << 2
end
--
-- p2.rb
require 'pstore'
db=PStore.new("sample.db", true)
db.transaction do
db["root"] << 3
end
--
これを,
ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mswin32]
において,p1.rb → p2.rb の順に走らせると,p2.rb のほうで
下記の例外が発生します。
F:/prog/RUBY-1~1.1/lib/ruby/1.9.1/pstore.rb:390:in `flock': Invalid
argument -
sample.db (Errno::EINVAL)
from F:/prog/RUBY-1~1.1/lib/ruby/1.9.1/pstore.rb:390:in
`open_and_lock_file'
from F:/prog/RUBY-1~1.1/lib/ruby/1.9.1/pstore.rb:325:in `block in
transaction'
from F:/prog/RUBY-1~1.1/lib/ruby/1.9.1/pstore.rb:361:in
`synchronize'
from F:/prog/RUBY-1~1.1/lib/ruby/1.9.1/pstore.rb:321:in
`transaction'
from p2.rb:3:in `<main>'
p1.rb のほうは 5 秒くらいして普通に終了します。
sample.db の "root" の値は [1, 2] となっています。
--
5.5@moji.gr.jp