[#6214] RE^2: HTML class — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6118] Re: HTML class
[#6219] Ruby連載 第4話 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
ももちゃん@あるもにこすです.
まつもと ゆきひろです
In message <199802040557.OAA18458@picachu.netlab.co.jp>
まつもと ゆきひろです
In message <199802040739.QAA20750@picachu.netlab.co.jp>
まつもと ゆきひろです
In message <199802040803.RAA24375@picachu.netlab.co.jp>
[#6249] Re: i++ — 助田 雅紀 <masaki.suketa@...>
助田です。
ことけんです
まつもと ゆきひろです
しげひろです.
ももちゃん@あるもにこすです.
まつもと ゆきひろです
ももちゃん@あるもにこすです.
まつもと ゆきひろです
[#6256] pop & smtp-lib.rb — tateishi@... (Takaaki TATEISHI)
立石@理科大です。
[#6272] I'd like to subscribe this ML — INOUE Katsuyuki <inoue@...>
井上勝行 と申します。
[#6279] Re: i++ — 助田 雅紀 <masaki.suketa@...>
助田です。
[#6314] RE: ruby's design policy (Re: I'd like to subscr ibe this ML) — 助田 雅紀 <masaki.suketa@...>
オブジェクト指向周辺をぶらぶらしている助田です。
まつもと ゆきひろです
井上勝行です。
まつもと ゆきひろです
[#6315] install some versions — gotoken@... (GOTO Kentaro)
ごとけんです
[#6333] ruby 流に添削して下さい — nkon@...2.3web.ne.jp
さくです.
さくです.自己フォロー.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
[#6342] Re: ruby's design policy (Re: I'd like to su bscr ibe this ML) — 助田 雅紀 <masaki.suketa@...>
助田です。
[#6372] ruby 1.1b7 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
前田です。
わたなべです.
ふなばです。
まつもと ゆきひろです
ふなばです。
[#6373] call for scripts — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
> もっと良いものがあるかもしれないと考え,実例集に載せられるよ
sort-schedule.rbで、ちょっと疑問に思っていることがあるのです
金城です.
まつもと ゆきひろです
金城です.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
原です。
From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>
きくたに@ぷ〜たろ〜です。
さくです.
わたなべです.
まつもと ゆきひろです
前田です。
前田です。
まつもと ゆきひろです
前田です。
前田です。
前田です。
前田です。
わたなべです.
ふなばです。
In message <19980222011624S.tadf@kt.rim.or.jp>
前田です。
ふなばです。
ふなばです。
けいじゅ@日本ラショナルソフトウェアです.
Regard to "[ruby-list:7447] Re: call for scripts"
[#6422] simple_chat_server — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6395] Re: call for scripts
[#6447] gsub — Tadayoshi Funaba <tadf@...>
ふなばです。
[#6514] ROT13/47 — OZAWA Sakuro <crouton@...>
小澤さくです.
[#6516] RE^2: simple_chat_server — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6437] Re: simple_chat_server
まつもと ゆきひろです
class String; def - x; end; end; %-
[#6538] IE favorites to HTML — OZAWA Sakuro <ozawa@...>
小澤さくです。会社からもMLに入っちゃいます。
[#6565] Re: Counter class [Re: i++ ] — toyofuku@...
豊福@パパイヤです。
[#6582] File::Separator on cygwin — OZAWA Sakuro <ozawa@...>
小澤さくです。
わたなべです.
小澤さくです。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#6591] ruby 1.1b8 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
前田です。
けいじゅ@日本ラショナルソフトウェアです.
前田です。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
さくです.
前田です。
小澤さくです。
うさぎの名前ででています:-)
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#6601] 8-queen — TAKAHASHI Masayoshi <maki@...>
高橋です。今度ちゃんと1.1b7にします……と書こうとしたら、b8になって
[#6605] true/TRUE false/FALSE nil/NIL — OZAWA Sakuro <crouton@...>
小澤さくです.
前田です。
まつもと ゆきひろです
[#6610] tcltklib dosen't compile — TEI meiki <tei@...>
鄭です。
[#6621] here document — Tadayoshi Funaba <tadf@...>
ふなばです。
[#6635] hello — WATANABE Tetsuya <tetsu@...>
渡辺哲也と申します。
まつもと ゆきひろです
>>>>> "matz" == Yukihiro Matsumoto <matz@netlab.co.jp> writes:
[#6706] Re: Counter class — toyofuku@...
豊福@パパイヤです。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#6735] Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda)
前田です。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
前田です。
From: shugo@po.aianet.ne.jp (Shugo Maeda)
前田です。
From: shugo@po.aianet.ne.jp (Shugo Maeda)
前田です。
まつもと ゆきひろです
[#6786] Re: Mutex/ConditionVariable/Queue — senda@...
From: shugo@po.aianet.ne.jp (Shugo Maeda)
前田です。
前田です。
前田です。
けいじゅ@日本ラショナルソフトウェアです.
In message <199802261520.AAA18702.keiju@cupmail0.rational.com>
前田です。
In message <199802270237.CAA00362@soleil.localnet.or.jp>
前田です。
In message <199802270635.GAA00354@soleil.localnet.or.jp>
前田です。
[#6819] ruby 1.1b9 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#6829] monitor.rb — shugo@... (Shugo Maeda)
前田です。
[#6830] what is 'octet decimal' — OZAWA Sakuro <crouton@...>
さくです.
[#6852] Counting Semaphore — Kazuhisa YANAGAWA <katze@...>
Counting semaphore をちょっと作ってみました. 見ての通り, コードは
[ruby-list:6845] Re: Mutex/ConditionVariable/Queue
In message <199802270939.JAA01070@soleil.localnet.or.jp>
shugo@po.aianet.ne.jp (Shugo Maeda) writes:
> | ですね. ちょっと例としては違ったか.... もっとも「その条件変数の追加
> | とメソッドのオーバライドが必要」というのが問題だ, というのが
> | inheritance anomaly の問題意識なのですが.
>
> ?
> 条件変数を追加するのは継承のせいではなくて違う条件で待つためですよね?
つまり, 「継承によって増えた同期条件に関する同期コードを実装するため
に, 継承もとのメソッドを再定義する必要がある」わけです.
# SizedQueue を Queue を継承して作った場合, push も pop も再定義しな
# ければならない....書き方が悪かったですね.
メソッドに条件変数の扱いが埋め込まれているため, 新しい同期条件をいれ
ると少なくともメソッドの同期条件のコードを書き直さなければならない.
今の言語だとそれはメソッドを再定義することに相当する, と.
で, 「ACT++ 風の behavior abstraction」で何がうれしいかと言うと,
class Queue
# オブジェクトは behavior に含まれるメソッドのみを受理し,
# 他は遅延する.
def next_behavior
if @que.empty?
behavior = [:push]
else
behavior = [:push, :pop]
end
end
def push
:
# become はオブジェクトの behavior を変更する.
become next_behavior
end
def pop
:
becom next_behavior
end
end
class SizedQueue<Queue
def next_behavior
if @que.empty?
behavior = [:push]
elsif @que.full?
behavior = [:pop]
else
behavior = [:push, :pop]
end
end
end
という感じで条件が増えても同期コード(next_behavior)だけ書き直せば
済むという所にあるわけです.
# これだと同期するコード以外は書けなくて, もとの Queue のような
# non-blocking 動作を実現できませんが.
> |> Mutexをモジュールに書き直そうと思うので、そっちではネスト
> |> できるようにしようと思います。
> |
> | reentrant mutex? スレッドが分岐する場合にはどうしましょうか. 複数の
> | コールを並行して行なう場合.
>
> すみません、意味がわかりませんでした。
こちらこそすみません. 全然関係ない話で混乱させてしまったようで.
Reentrant mutex っていうのは見たまま「再入可能な mutex」というだけな
んですよ. 基本的に同一スレッドによる再入を可能にする.
「スレッドが分岐する」とかいう話はまあたいした意味は無くて,
# グラフトラバーサルの一部. グラフ上の値の和を求める.
class Node
def query
@mutex.synchronize {
if @visited
0
else
@visited = true
# par_collect は並列に collect をするぐらいのつもり.
res = @neighbors.par_collect {|n| n.query}
# reduce は.... res の値の和を取っているつもり
@value + res.reduce(:+)
end
}
end
end
なんていうコードがあった時(いや, par_collect とか reduce なんて
Ruby にはありませんが (^^;), par_collect で作られたスレッドも再入で
きないとグラフに閉路があった時困る, という話なんです.
# 「グラフトラバーサルぐらいだったら mutex でじゅうぶんわかりやすく
# 書けるね」という話もあるんで, 研究をまとめるのが大変, と.
メソッドコールをオブジェクトをまたがる論理的なスレッドの移動と考える
と, par_collect のところで論理的なスレッドが分岐していることになる,
と.
> lockではmutex.owner==Thread.currentな時はカウンタをインクリメント
> して、unlockではカウンタが0になるまでロックを解放しない、というこ
> とをしたいだけなのですが。
で, スレッドが分岐しないのならこれで何の問題もない, と.
# うーむ, 無関係な話で手間をとらせてしまった....
======================================================================
柳川 @ 情報システム学研究科 . 電気通信大学
katze@yuba.is.uec.ac.jp February 28, 1998
He knows most who speaks least.