[#7288] plain2 + popmail — tateishi@...
立石です。
わたなべです.
[#7292] Exception in ruby — TAKAHASHI Masayoshi <maki@...>
高橋です。
[#7315] recovery of exception — tateishi@...
立石です。
[#7330] sub, gsub bug? — 金子尚史 <wbs01621@...>
はじめまして、金子と申します。
[#7334] — Kazutomi Ueda <ueda@...>
上田と申します。
[#7342] '$' in regexp — TAKAHASHI Masayoshi <maki@...>
高橋です。こんばんは。
[#7354] def foo=(a,b) — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>
ruby-1.1b9_08 (07 からみたいですが)での話です。
まつもと ゆきひろです
さっそく対応していただきてありがとうございます。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
[#7386] Dir.foreach — "Hiroshi Ishikawa(NIMS)" <h-isikaw@...16.nims.nec.co.jp>
いしかわ@NIMS です。
[#7388] inf-ruby.el — senda@...
[#7410] irb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#7442] telnet.rb — Wakou Aoyama <wakou@...>
青山です。
[#7464] subscribe for ruby-list — Kazuhiro HIWADA <hiwada@...>
ひわだといいます。はじめまして。
[#7471] scope — Wakou Aoyama <wakou@...>
青山です。
わたなべです.
青山です。
[#7492] Tcl/Tk fileevent — NAGAI Hidetoshi <nagai@...>
永井@知能.九工大です.
きくたに@ぷ〜たろ〜です。
永井@知能.九工大です.
[#7500] List on List — WATANABE Hirofumi <watanabe@...>
わたなべです.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
「Perlのmapをrubyでどう書くか」というネタはMLに入る前から暖めていたの
けいじゅ@日本ラショナルソフトウェアです.
わたなべです.
まつもと ゆきひろです
[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>
荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。
[#7582] Re: List on List — Makoto Nukui <gnue@...>
こんにちは、GNUE(鵺)です。
[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>
えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった
わたなべです.
原です。
From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>
原です。
前田です。
From: shugo@po.aianet.ne.jp (Shugo Maeda)
ふなばです。
まつもと ゆきひろです
原です。
[#7622] dir search — Kikutani Makoto <kikutani@...>
きくたにです。
[#7648] new irb release — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>
原です。
まつもと ゆきひろです
わたなべです.
>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:
原です。
わたなべです.
From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
まつもと ゆきひろです
From: matz@netlab.co.jp (Yukihiro Matsumoto)
まつもと ゆきひろです
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
[#7713] Re: private and protected — Makoto Nukui <gnue@...>
Yukihiro Matsumoto:
[#7723] shared library of ruby — ttate@...
立石です。
[#7727] Re: [ruby-dev:2503] library for Tcl/Tk ext-package — NAGAI Hidetoshi <nagai@...>
永井@知能.九工大です.
永井@知能.九工大です.
永井@知能.九工大です.
[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>
きくたにです。
ごとけんです
きくたにです。
はじめまして、道村といいます。
ごとけんです
ごとけんです
わたなべです.
原です。
ごとけんです
原です。
[#7764] reference manual for ruby 1.1b9_16 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
黒田です。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
[ruby-list:7490] Re: socket
まつもと ゆきひろです
In message "[ruby-list:7472] socket"
on 98/04/15, Wakou Aoyama <wakou@fsinet.or.jp> writes:
|青山です。
|
|ruby-1.1b_10 の(07-09 のどれかかも)の socket の動きが変です。
あー,ソケットに本質的な変更は加えていませんが,なんとなく心
辺りがあります.これはローカル変数のバグフィックスのせいでは
ないかと思います.
つまり,
|loop do
| sock = port.accept # stand by for accept
|
| Thread.start do # divide the work
| case http_header_analyze(sock)
この部分での変数sockですが,これは全体(全てのスレッドで)共有
されます.つまり,sockの値を変更するとそれは全てのスレッドに
対して有効です.ですから,次のacceptでsockの値が変ってしまっ
たわけですね.
どうも1.1b6以前ではローカル変数処理のバグである種のローカル
変数が勝手にスレッド毎に独立した値を持つ時があったようです
(未確認だけど,多分).1.1b7周辺でローカル変数の動作の部分に
修正を加えたので,その時に直ったのでしょう.この挙動はバグで
す.この挙動に依存したプログラムは今後は正常に動作しません.
で,対策ですが,スレッド毎に独立したローカル変数を持つには
* スレッドブロック(startで指定したブロック)の中で初出の変
数を使う
* スレッド内でメソッドを呼んでそのローカル変数を使う
という方法があります.
前者は一種のイディオムで「ローカル変数はメソッドの先頭で初期
化すべし」という『ローカル変数のオキテ』の例外になります.
問題のプログラムを書き換えるとこうなります.
|loop do
| s = port.accept # stand by for accept
|
| Thread.start do # divide the work
sock = s # copy to thread-local variable
| case http_header_analyze(sock)
# sockは外側で代入されていないとします.
一見無駄な代入のように見える,sock = s ですが,スレッド毎の
変数を用意する目的を果たしています.
またはstart以降のdo..endの部分を別のメソッド(関数)に分離して
も良いでしょう.
まつもと ゆきひろ /:|)