[#11680] fork_and_kill_other_threads — "NAKAMURA, Hiroshi" <nakahiro@...>

なひです。[ruby-list:26165]からもって来ました。

27 messages 2000/12/02
[#11681] Re: fork_and_kill_other_threads — Masatoshi SEKI <m_seki@...> 2000/12/02

[#11682] Re: fork_and_kill_other_threads — matz@... (Yukihiro Matsumoto) 2000/12/02

まつもと ゆきひろです

[#11685] Re: fork_and_kill_other_threads — nobu.nakada@... 2000/12/03

なかだです。

[#11687] Re: fork_and_kill_other_threads — matz@... (Yukihiro Matsumoto) 2000/12/03

まつもと ゆきひろです

[#11708] Re: fork_and_kill_other_threads — Kazuhiro NISHIYAMA <zn@...> 2000/12/06

On Sun, 3 Dec 2000 23:33:41 +0900

[#11709] Re: fork_and_kill_other_threads — matz@... (Yukihiro Matsumoto) 2000/12/06

まつもと ゆきひろです

[#11710] Re: fork_and_kill_other_threads — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/12/06

なひです。

[#11713] Re: fork_and_kill_other_threads — matz@... (Yukihiro Matsumoto) 2000/12/06

まつもと ゆきひろです

[#11716] Re: fork_and_kill_other_threads — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/12/06

なひです。

[#11718] Re: fork_and_kill_other_threads — matz@... (Yukihiro Matsumoto) 2000/12/06

まつもと ゆきひろです

[#11722] Re: fork_and_kill_other_threads — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/12/07

なひです。

[#11733] Ruby I18N 改め M17N — とみたまさひろ <tommy@...>

とみたです。

17 messages 2000/12/07
[#11735] Re: Ruby I18N 改め M17N — matz@... (Yukihiro Matsumoto) 2000/12/08

まつもと ゆきひろです

[#11751] Re: Ruby I18N 改め M17N — とみたまさひろ <tommy@...> 2000/12/13

とみたです。

[#11752] Re: Ruby I18N 改め M17N — matz@... (Yukihiro Matsumoto) 2000/12/13

まつもと ゆきひろです

[#11789] mswin32 [Q & patch] mkmf.rb — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

14 messages 2000/12/18
[#11790] Re: mswin32 [Q & patch] mkmf.rb — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/12/19

なかだです。

[#11848] Where'd all the Ruby's history gone? — "Akinori MUSHA" <knu@...>

 さっき気付いたんですが、 Ruby のレポジトリから過去分がごっそり

27 messages 2000/12/25
[#11853] Re: Where'd all the Ruby's history gone? — matz@... (Yukihiro Matsumoto) 2000/12/26

まつもと ゆきひろです

[#11861] Re: Where'd all the Ruby's history gone? — Kazuhiro NISHIYAMA <zn@...> 2000/12/26

On Tue, 26 Dec 2000 14:58:07 +0900

[#11862] Re: Where'd all the Ruby's history gone? — matz@... (Yukihiro Matsumoto) 2000/12/26

まつもと ゆきひろです

[#11869] Re: Where'd all the Ruby's history gone? — "Akinori MUSHA" <knu@...> 2000/12/26

At Tue, 26 Dec 2000 17:44:57 +0900,

[#11894] Re: Where'd all the Ruby's history gone? — Kazuhiro NISHIYAMA <zn@...> 2000/12/29

On Tue, 26 Dec 2000 21:24:19 +0900

[#11895] Re: Where'd all the Ruby's history gone? — "Akinori MUSHA" <knu@...> 2000/12/29

At Fri, 29 Dec 2000 18:56:03 +0900,

[#11896] Re: Where'd all the Ruby's history gone? — Kazuhiro NISHIYAMA <zn@...> 2000/12/29

On Fri, 29 Dec 2000 19:07:12 +0900

[#11852] local variable extent problem? — Tanaka Akira <akr@...17n.org>

どうも、Ruby のバグのような気がするものを見つけたのですが、もしかした

21 messages 2000/12/26
[#11855] Re: local variable extent problem? — matz@... (Yukihiro Matsumoto) 2000/12/26

まつもと ゆきひろです

[#11857] Re: local variable extent problem? — Tanaka Akira <akr@...17n.org> 2000/12/26

In article <977817486.100168.31162.nullmailer@ev.netlab.zetabits.com>,

[#11859] Re: local variable extent problem? — matz@... (Yukihiro Matsumoto) 2000/12/26

まつもと ゆきひろです

[#11860] Re: local variable extent problem? — Tanaka Akira <akr@...17n.org> 2000/12/26

In article <977819010.870991.31953.nullmailer@ev.netlab.zetabits.com>,

[#11863] Re: local variable extent problem? — matz@... (Yukihiro Matsumoto) 2000/12/26

まつもと ゆきひろです

[#11865] Re: local variable extent problem? — "Akinori MUSHA" <knu@...> 2000/12/26

At Tue, 26 Dec 2000 17:50:11 +0900,

[#11874] Re: local variable extent problem? — matz@... (Yukihiro Matsumoto) 2000/12/26

まつもと ゆきひろです

[ruby-dev:11852] local variable extent problem?

From: Tanaka Akira <akr@...17n.org>
Date: 2000-12-26 04:39:27 UTC
List: ruby-dev #11852
どうも、Ruby のバグのような気がするものを見つけたのですが、もしかした
らそうでないような気もするので、教えて下さい。

(スクリプト全体は後につけますが) 次のようなコードを実行すると、
print "#{var}\n" の行で var という変数が定義されていないというエラーが
出ます。

test = Test.new
Retriever.new {|retriever|
  var = "val"
  test.get(retriever) {|result|
    print "#{result}\n"
    print "#{var}\n"
  }
}

実際のエラーメッセージは次のようになります。

% ./tst
test
./tst:52: undefined local variable or method `var' for #<Object:0x8106cd8> (NameError)
        from ./tst:31:in `join'
        from ./tst:31:in `initialize'
        from ./tst:48:in `new'
        from ./tst:48
% /usr/local/bin/ruby -v
ruby 1.6.1 (2000-09-27) [i386-freebsdelf4.0]
% 

| ローカル変数のスコープは,その変数が宣言されたブロック,メソッド定義,
| またはクラス/モジュール定義の終りまでです.寿命もそのブロックの終りま
| で(トップレベルのローカル変数はプログラムの終了まで)ですが,例外として
| ブロックが手続きオブジェクト化された場合は,そのオブジェクトが消滅する
| まで存在します.同じスコープを参照する手続きオブジェクト間ではローカル
| 変数は共有されます.

という説明を読むと、この「例外」に対応するので、ちゃんと生き残っていて
使えるべきだ、と思うのですが...

#!/usr/local/bin/ruby

require 'thread'
require 'net/http'

class Test
  def get(retriever)
    Receptor.new(retriever) {|result|
      yield result
    }
  end
end

class Receptor
  def initialize(retriever, &proc)
    @proc = proc
    retriever.enqueue(self)
  end

  def finished
    @proc.call(:test)
  end
end

class Retriever
  def initialize
    @queue = Queue.new
    @thread = Thread.new {get_loop}
    yield self
    @queue.push(nil)
    @thread.join
  end

  def enqueue(dest)
    @queue.push dest
  end

  def get_loop
    while dest = @queue.pop
      r, b = Net::HTTP.new("cvs.m17n.org", 80).get("/")
      dest.finished
    end
    @queue.push nil
  end
end

test = Test.new
Retriever.new {|retriever|
  var = "val"
  test.get(retriever) {|result|
    print "#{result}\n"
    print "#{var}\n"
  }
}
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ああ、それは大丈夫だよぉ。カイロを持って行くもぉん$(C⊇」
  (気象精霊記2 爆弾気分の低気圧, 清水文化)

In This Thread

Prev Next