[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:143

From: SASADA Koichi <ko1 atdot.net>
Date: Wed, 25 Aug 2004 05:16:09 +0900
Subject: [yarv-dev:143] exception message for vcall

 ささだです.


 なんとなく,こんなコードを書いてみたら,

class C
  def method_missing *args
    sleep 1
    super
  end

  def foo
    hoe
  end

  def bar
    moe()
  end
end

Thread.new{
  C.new.foo
}
C.new.bar

#=>
t.rb:6:in `method_missing': undefined method `hoe' for #<C:0x2ac6f40> (NoMethodError)


 は,これでいいんでしょうか.
(undefined local variable or method `hoe' がほしい,多分)

(答え:誰も気にしません)


class C
  def method_missing sel, *args
    if sel == :moe
    else
      moe()
      super
    end
  end

  def foo
    hoe
  end
end

C.new.foo

#=>
t.rb:8:in `method_missing': undefined method `hoe' for #<C:0x2ac7210> (NoMethodError)

 でも同じですね.

(答え:誰もこんなことしません)


 将来もこんな感じでいいでしょうか?

 スレッド越しの話は,スレッド固有の変数にしてしまえばいいか
と思ったんですが,同じスレッド内だと,こいつらのスタックが必
要になるんでやりたくないですねぇ.

-- 
// SASADA Koichi at atdot dot net
//


--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

->     143 2004-08-25 05:16 [ko1 atdot.net       ] exception message for vcall             
       146 2004-08-25 12:12 ┗[matz ruby-lang.org  ]                                       
       147 2004-08-25 13:32  ┗[ko1 atdot.net       ]