[#3305] Observable#notify_observers — shugo@... (maeda shugo)

前田です。

22 messages 1997/07/09

[#3329] meta programming features — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

44 messages 1997/07/11
[#3330] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/11

けいじゅ@今はフリー(^^;;;です.

[#3332] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/11

まつもと ゆきひろ%最終出社日です

[#3340] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/14

けいじゅ@今はフリー(^^;;;です.

[#3343] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/14

まつもと ゆきひろです

[#3345] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/14

けいじゅ@今はフリー(^^;;;です.

[#3346] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/14

まつもと ゆきひろです

[#3349] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/15

けいじゅ@今はフリー(^^;;;です.

[#3352] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/15

まつもと ゆきひろです

[#3353] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/15

けいじゅ@今はフリー(^^;;;です.

[#3357] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/15

まつもと ゆきひろです

[#3361] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/16

けいじゅ@今はフリー(^^;;;です.

[#3365] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/16

まつもと ゆきひろです

[#3366] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/16

けいじゅ@今はフリー(^^;;;です.

[#3391] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/18

まつもと ゆきひろです

[#3398] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/19

けいじゅ@今はフリー(^^;;;です.

[#3401] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/19

まつもと ゆきひろです

[#3406] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/22

けいじゅ@今はフリー(^^;;;です.

[#3410] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/22

まつもと ゆきひろです

[#3415] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/23

けいじゅ@今はフリー(^^;;;です.

[#3375] Exception — keiju@... (Keiju ISHITSUKA)

けいじゅ@今はフリー(^^;;です.

19 messages 1997/07/17
[#3383] Re: Exception — matz@... (Yukihiro Matsumoto) 1997/07/18

まつもと ゆきひろです

[#3388] Re: Exception — keiju@... (石塚圭樹 ) 1997/07/18

けいじゅ@今はフリー(^^;;;です.

[#3392] Re: Exception — matz@... (Yukihiro Matsumoto) 1997/07/18

まつもと ゆきひろです

[#3403] sorry for ruby-list trouble — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

18 messages 1997/07/22
[#3404] Re: sorry for ruby-list trouble — keiju@... (石塚圭樹 ) 1997/07/22

けいじゅ@今はフリー(^^;;;です.

[#3408] Re: sorry for ruby-list trouble — matz@... (Yukihiro Matsumoto) 1997/07/22

まつもと ゆきひろです

[#3414] Re: sorry for ruby-list trouble — keiju@... (石塚圭樹 ) 1997/07/23

けいじゅ@今はフリー(^^;;;です.

[#3420] Re: sorry for ruby-list trouble — matz@... (Yukihiro Matsumoto) 1997/07/23

まつもと ゆきひろです

[#3434] [Q] Thread — keiju@... (Keiju ISHITSUKA)

けいじゅ@今はフリー(^^;;です.

44 messages 1997/07/24
[#3444] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1997/07/24

まつもと ゆきひろです

[#3455] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1997/07/24

けいじゅ@今はフリー(^^;;;です.

[#3461] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1997/07/25

まつもと ゆきひろです

[#3464] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1997/07/25

けいじゅ@今はフリー(^^;;;です.

[#3483] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1997/07/25

まつもと ゆきひろです

[#3528] Re: [Q] Thread — shugo@... (maeda shugo) 1997/07/28

前田です。

[#3537] Re: [Q] Thread — shugo@... (maeda shugo) 1997/07/29

前田です。

[#3542] Re: [Q] Thread — shugo@... (maeda shugo) 1997/07/30

前田です。

[ruby-list:3533] Re: [Q] Thread

From: keiju@... (石塚圭樹 )
Date: 1997-07-28 22:12:10 UTC
List: ruby-list #3533
けいじゅ@今はフリー(^^;;;です. 

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 <<---

In This Thread