[#3249] ruby for mswin32 — KIMURA Koichi <kkimura@...>
[#3257] mini-reference (syntax) — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#3305] Observable#notify_observers — shugo@... (maeda shugo)
前田です。
[#3312] multi-line comment — shugo@... (maeda shugo)
前田です。
[#3329] meta programming features — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろ%最終出社日です
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
[#3350] [Q] eql? and == — keiju@... (Keiju ISHITSUKA)
けいじゅ@今はフリー(^^;;です.
[#3375] Exception — keiju@... (Keiju ISHITSUKA)
けいじゅ@今はフリー(^^;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
[#3378] ML分割 — takagi@... (TAKAGI Hiromitsu)
ところで、話は変わって、ひとつ提案です。
[#3403] sorry for ruby-list trouble — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
[#3411] no cbreak in curses module — Shoichi OZAWA <ozawa@...>
こんにちは 小澤@日立 です。
[#3417] [Bug] String#sub — shugo@... (maeda shugo)
前田です。
[#3429] [Req] println — shugo@... (maeda shugo)
前田です。
まつもと ゆきひろです
[#3434] [Q] Thread — keiju@... (Keiju ISHITSUKA)
けいじゅ@今はフリー(^^;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
けいじゅ@今はフリー(^^;;;です.
まつもと ゆきひろです
前田です。
前田です。
前田です。
けいじゅ@今はフリー(^^;;;です.
<199707301029.TAA25172@hoyogw.netlab.co.jp> の、
けいじゅ@今はフリー(^^;;;です.
<199707311103.UAA08460@hoyogw.netlab.co.jp> の、
[#3470] [Problem] for local class — keiju@... (Keiju ISHITSUKA)
けいじゅ@今はフリー(^^;;です.
[#3502] Re: .to_f result — 渡辺博文 <VYV01212@...>
わたなべです.
[ruby-list:3533] Re: [Q] Thread
けいじゅ@今はフリー(^^;;;です.
In [ruby-list :03521 ] the message: "[ruby-list:3521] Re: [Q] Thread
", on Jul/28 23:53(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes:
>|ユーザレベルでは対応できなくて(しよう思うとThread.critical = FALSEしか
>|ない), クラスライブラリレベルで対応してもらわないと困りますね.
>
>そういうケースが存在するのは認めますが,それはCのような言語
>でも同じで,だからどうしろというものでもないですよね.
># そもそも言語レベルで回避しようがない
いやいや, それがいいたかったわけではないんです. 言語レベルでどうしろと
いいたいのではなくて, 一般に使えるクラスライブラリを作ろうとしようとす
る時には, クラスライブラリを作る側がそのぐらいのことは対応しなくてはな
らないではなかろうか? といいたかったのです.
# 松本氏とは立場が違うからなぁ...
In [ruby-list :03528 ] the message: "[ruby-list:3528] Re: [Q] Thread
", on Jul/29 01:20(JST) shugo@po.aianet.ne.jp (maeda shugo) writes:
>前田です。
>|についてですが, そのオブジェクトに対して排他制御するのであれば, Mutex
>|を使えば実現できるんでしょうけど, 下図の様に, 内部に依存したオブジェク
>|トがあってそれに対して排他制御を行わなくてなならないパターンの場合:
>|
>| a_Foo_1 -+
>| +--> a_Bar
>| a_Foo_2 -+
>|
>| a_Barを同時アクセスすると異常動作する.
>|
>|ユーザレベルでは対応できなくて(しよう思うとThread.critical = FALSEしか
>|ない), クラスライブラリレベルで対応してもらわないと困りますね.
>a_Barのクラスも安全に排他制御するように設計しておけば大丈夫ではないで
>しょうか?
(以下略)
>のようにすればそんなに手間はかからないと思うのですがどうでしょう?
私のいいたいことがはっきりしていなくてすいません. まさに(*そのとおりな
んです.
(* 後でコーディングについては, いいたいことがあります.
上記のプログラムはクラスを作る側しか利用できないですよね. クラスを使う
側では, そのような対応はできないですよね. ソースを変えれば別ですが, そ
れでは, クラスライブラリの意味(隠蔽効果)がないですしね.
したがって, 最初の方でもあるのですが, 一般に使われるライブラリを作ろう
と思ったら, そのライブラリを使うユーザは, ``見えない資源''に関する排他
制御に関して, 意識しなくても済むように作った方がいいんじゃないか? とい
うことをいいたかったのでした.
いうなれば, 公開ライブラリを作る時のFAQ的常識として, そのぐらいのレベ
ルを提言したかったのでした.
ところで, コードレベルについて文句をいってすいませんが:
> class Foo
> include Synchronizable
>
> # 同時にアクセスされたくないメソッド
> def synchronized_method
> synchronize {
> ...
> }
> end
> end
排他制御は資源(オブジェクト)単位で行うものであって, メソッドレベルで行
うものでないと思うんですが... もし, a_Barに対して排他制御を行いたけれ
ば,
class Foo
def initialize
a_Bar = ...
a_Bar_mutex = Mutex.new
# or a_Bar.exend Mutex_m
...
def method
...
# a_Barを使うトランザクションレベルオペレーション
a_Bar_mutex.syncronize do
# or a_Bar.synchronize do
...
end
...
end
end
のようなコーディングの方が良いと思います. 違いは微妙なんですが, 個別の
インスタンスa_Barをアクセスしていて, 本当に排他制御が必要な領域(同時ア
クセスされると困る領域: トランザクション)をa_Barだけに限って排他制御し
た方が一般的にはよいと思います.
# 私は, 元OODB屋さんなのでこの辺は細かいのであった(^^;;;
__
.........................................石塚 圭樹@今はフリー(^^;;...
------->>また, アドレス変わりました!! e-mail: keiju@bc.mbn.or.jp <<---