[#3564] ruby home page moved — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#3567] Nil is a subclass of Object? — shugo@... (maeda shugo)
前田です。
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
[#3608] We have access to Nil on ruby 1.0 — shugo@... (maeda shugo)
前田です。
[#3614] [Request] File.readlines — keiju@... (Keiju ISHITSUKA)
けいじゅ@いそうろう.日本ラショナルです.
まつもと ゆきひろです
[#3616] ftplib.rb — shugo@... (maeda shugo)
前田です。
[#3629] LaTeX ruby documents — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
[#3638] ftplib.rb & ftpmirror — shugo@... (maeda shugo)
前田です。
[#3676] MSVC compile error — toyofuku@...
豊福@パパイヤです。
[#3689] [BUG] inspect — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルです.
[#3690] new sync.rb release — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルです.
前田です。
[#3693] ftplib.rb revision 1.4 — shugo@... (前田 修吾 / maeda shugo)
前田です。
[#3714] ruby 1.0-970819 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#3715] may i make a ruby.rpm? — Shoichi OZAWA <ozawa@...>
こんにちは 小澤@日立 です。
まつもと ゆきひろです
小澤@日立 です。
[#3736] module for GNU Readline Library — shugo@... (前田 修吾 / maeda shugo)
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
[#3738] [BUG] a[0] += 1 (ruby-1.0-970820) — WATANABE Hirofumi <watanabe@...>
わたなべです.
まつもと ゆきひろです
[#3749] regex? (ruby-1.0-970820) — jkuro@... (Jun Kuroda)
黒田です。
[#3769] link image for ruby — shugo@... (前田 修吾 / maeda shugo)
前田です。
原です。
まつもと ゆきひろです
前田です。
[#3773] PostgreSQL module is released. — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
[#3785] rbdj0821.zip, rbgw0821.zip — WATANABE Hirofumi <watanabe@...>
わたなべです.
まつもと ゆきひろです
[#3786] [Q] How to open — Shin-ichiro Hara <sinara@...>
原です
助田です
原です。
[#3812] SyslogSendmail class — takagi@... (TAKAGI Hiromitsu)
【皆で学ぼうシリーズ(1)】
[#3819] multi-dimensional array — aito@...5sun.yz.yamagata-u.ac.jp
こんにちは,あ伊藤@山形大学です.
[#3833] [Bug] Regexp.quote — shugo@... (前田 修吾 / maeda shugo)
前田です。
助田です。
まつもと ゆきひろです
助田です
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです.
けいじゅ@日本ラショナルソフトウェアです.
[#3839] Re: SyslogSendmail class — takagi@... (TAKAGI Hiromitsu)
> そうですね.本当はこーゆーのが ruby-list の本来の形ですね.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
[#3868] call for impression — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#3869] Re: SyslogSendmail class — takagi@... (TAKAGI Hiromitsu)
> Moduleのところに書いてあるんですねえ.こういうノウハウを記述
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
[#3872] Re: SyslogSendmail class — takagi@... (TAKAGI Hiromitsu)
> | attr [:date, TRUE], [:time], [:process_name, TRUE]
前田です。
まつもと ゆきひろです
[#3892] manual html by lynx — Kikutani Makoto <kikutani@...>
きくたにです。
[#3901] class variable — toyofuku@...
豊福@パパイヤです。
まつもと ゆきひろです
前田です。
[#3906] document for beginner — toyofuku@...
豊福@パパイヤです。
きくたにです。
助田です
Fri, Aug 29, 1997 at 12:54:15PM +0900 において
助田です
きくたにです。
まつもと ゆきひろです
[#3933] Re: ruby constants — toyofuku@...
豊福@パパイヤです。
まつもと ゆきひろです
わたなべです.
わたなべです.
まつもと ゆきひろです
わたなべです.
> これは ANSI C でも使えます.
まつもと ゆきひろです
[#3951] Re: document for beginner — toyofuku@...
豊福@パパイヤです。
[ruby-list:3655] Re: [Q] How to use Synchronizer?
けいじゅ@いそうろう.日本ラショナルです. In [ruby-list :03649 ] the message: "[ruby-list:3649] [Q] How to use Synchronizer? ", on Aug/10 21:31(JST) shugo@po.aianet.ne.jp (maeda shugo) writes: >前田です。 > >Mutexを使うと > >$m = Mutex.new >def foo > $m.synchronize do > print "foo\n" > end >end >3.times do > $m.synchronize do > foo > end >end > >のようなのがうまく動きませんよね? ですね. >Mutexの代りにSynchronizerを使ってみたらうまくいったのですが、 >Synchronizerではこういった場合の動作も保証されているのでしょうか? 保証されています. ただし, カウントを数えているのでlockの数だけunlockを 行わないとlockが解除されません. >それと、modeの指定の意味がわからないのですが、どうやって使うもの >なのでしょう? そうですね. 説明って全然ないですよね... Syncronizerは(カウント付)2-phase lockを採用しています. mode: :UN ロックの解除 :SH 共有ロック :EX 排他ロック :EXがMutexのロックと同じモードです. このロックがかかっている時に, 他の スレッドがロックしようとするとブロックされます. 排他ロックはwrite lock ともいいます. 書き込み中に他のクライアント(スレッド)が読み/書きすると 危険ですよね. :SHは共有ロックでflockのLOCK_SHと同じものだと思います. このロックがか かっている時は, 以下の動作をします: * 他のスレッドが共有ロックを行おうことはできる. * 他のスレッドが排他ロックを行おうとすると, ブロックされる. 共有ロックは read lock とも呼ばれます. 読み込みの場合, 同時に複数のク ライアント(スレッド)が読み込んでも安全ですが, 書き込みが行われると不整 合が発生する可能性があるのでwrite はblockされるようになっています. 普通の2-phase lockと違うところは, countがついているところなのですが: カウントはどうなっているかというと, カウントは2種類あって read-lock-countとwrite-lock-count があります. 動作はどうなっているかと いうと以下の例を見て下さい:: R: 共有ロック(read-lock) W: 排他ロック(write-lock) Rn: 共有ロックカウント Wn: 排他ロックカウント case 1: ロックの種類:R R R UL UL UL カウントの数:->(R1, W0)->(R2, W0)->(R3, W0)->(R2, W0)->(R1, W0)->(R0, W0) という感じでロックを行うとカウントが増えて, アンロックするとカウントが 減ります. case 2: ロックの種類:W W W UL UL UL カウントの数:->(R0, W1)->(R0, W2)->(R0, W3)->(R0, W2)->(R0, W1)->(R0, W0) 排他ロックの場合も同じです. 問題なのが共有ロックと排他ロックが混在した 時です: case 3: ロックの種類: R -> R -> W -> UL -> UL -> UL カウントの数: (R1, W0)->(R2, W0)->(R2, W1)->(R2, W0)->(R1, W0)->(R0, W0) write lockが行われた時点で, lockのモードが排他ロックにアップグレードさ れます. unlockは, ロックをかけた順番の逆順に解除されます. この場合, 1度めの unlockで排他lockが解除され, 残り2回unlockを行うと共有ロックが解除され ます. あくまでも, ロックをかけた逆順番にロックが解除されるので, 注意が必要で す. Synchronizer#syncを使っている限り問題はないと思いますが... case 4: ロックの種類: R -> W -> R -> UL -> UL -> UL カウントの数: (R1, W0)->(R1, W1)->(R1, W2)->(R1, W1)->(R1, W0)->(R0, W0) 排他ロックの後にかけたロックは, 常に排他ロックとなります. この場合, 2度めのunlockで排他ロックが解除され, 3度めのunlockで共有ロッ クが解除されます. PS. 現在, Synchronizerをversion up中です. Mutex_mのような機能をつけようと しています. あと, case 3の注意事項がちょっと気になるので, unlockにモードもつけられ るようにしたいと思います. __ ..........................................石塚 圭樹@日本ラショナル... ----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---