[#1381] bound method — shugo@... (Shugo Maeda)

前田です。

21 messages 1998/02/04
[#1383] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#1384] Re: bound method — keiju@... (石塚圭樹 ) 1998/02/05

けいじゅ@日本ラショナルソフトウェアです.

[#1385] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#1387] Re: bound method — keiju@... (石塚圭樹 ) 1998/02/05

けいじゅ@日本ラショナルソフトウェアです.

[#1388] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#1389] Re: bound method — keiju@... (石塚圭樹 ) 1998/02/05

けいじゅ@日本ラショナルソフトウェアです.

[#1396] Re: bound method — matz@... (Yukihiro Matsumoto) 1998/02/06

まつもと ゆきひろです

[#1410] GD — Masao Kanemitsu <masao-k@...>

30 messages 1998/02/10
[#1411] Re: GD — matz@... (Yukihiro Matsumoto) 1998/02/10

まつもと ゆきひろです

[#1413] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1417] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/10

<199802100623.PAA03533@eban.ase.ptg.sony.co.jp> の、

[#1420] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1426] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/10

<199802100733.QAA04028@eban.ase.ptg.sony.co.jp> の、

[#1428] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1429] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/10

<199802100757.QAA04212@eban.ase.ptg.sony.co.jp> の、

[#1431] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/10

わたなべです.

[#1434] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/12

<199802100952.SAA04346@eban.ase.ptg.sony.co.jp> の、

[#1435] Re: GD — WATANABE Hirofumi <watanabe@...> 1998/02/12

わたなべです.

[#1436] Re: GD — Masao Kanemitsu <masao-k@...> 1998/02/12

<199802120449.NAA00398@eban.ase.ptg.sony.co.jp> の、

[ruby-dev:1526] Re: SizedQueue and some question

From: keiju@... (石塚圭樹 )
Date: 1998-02-24 11:01:53 UTC
List: ruby-dev #1526
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-dev :01525 ] the message: "[ruby-dev:1525] Re: SizedQueue and
some question ", on Feb/24 18:15(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>|でも, 実際に実行してみると, @queue_waitで待っている順にpushしないとい
>|う問題がありました. t.runを同時に行なうので, この順番が狂う問題はどう
>|しようもないんですかね(?_?
>
>いっそのこと Thread.critical を触らなければ良いんじゃないで
>すかね.多分問題ないでしょう(本当か?).

ん? ほんとにそういう問題なんですか?

  def max=(max)
    if @max >= max
      @max = max
    else
#      Thread.critical = TRUE
      diff = max - @max
      @max = max
      diff.times do
	t = @queue_wait.shift
	t.run if t
      end
#      Thread.critical = FALSE
      @max
    end
  end

っていみですよね? そうすると, t.run したじゅんばんに @que.pushすること
になるんです?

それよか,

  def push(obj)
    Thread.critical = TRUE
    while @que.length >= @max
      @queue_wait.push Thread.current
      Thread.stop
-->   Thread.critical = TRUE
    end
    super
  end

とするってのはどうですか? そうすると, 走り出したスレッドが他のスレッド
をブロックするので順序が保証されるんじゃないですかね?

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@rational.com <<---

In This Thread