[#40961] [Bug #3137] complex.rb changes exceptions of Math — Yusuke Endoh <redmine@...>

Bug #3137: complex.rb changes exceptions of Math

15 messages 2010/04/12
[#40967] Re: [Bug #3137] complex.rb changes exceptions of Math — keiju@... (石塚圭樹) 2010/04/13

けいじゅ@いしつかです.

[#41038] Windows と DL が使用条件の libffi — Aaron Patterson <aaron.patterson@...>

こんにちは!アーロンです。

17 messages 2010/04/22
[#41039] Re: Windows と DL が使用条件の libffi — "U.Nakamura" <usa@...> 2010/04/22

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

[#41040] Re: Windows と DL が使用条件の libffi — "NARUSE, Yui" <naruse@...> 2010/04/22

成瀬です。

[#41059] Re: Windows と DL が使用条件の libffi — Aaron Patterson <aaron.patterson@...> 2010/04/26

2010/4/21 NARUSE, Yui <naruse@airemix.jp>:

[#41060] Re: Windows と DL が使用条件の libffi — Yugui <yugui@...> 2010/04/26

2010/4/26 Aaron Patterson <aaron.patterson@gmail.com>:

[#41067] [Feature #3203] LazySweepGC patch — Narihiro Nakamura <redmine@...>

Feature #3203: LazySweepGC patch

15 messages 2010/04/26
[#41069] Re: [Feature #3203] LazySweepGC patch — Yusuke ENDOH <mame@...> 2010/04/27

遠藤です。

[#41104] Rails3 M17N — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

29 messages 2010/04/30
[#41111] Re: Rails3 M17N — Urabe Shyouhei <shyouhei@...> 2010/04/30

Yukihiro Matsumoto =E3=81=95=E3=82=93=E3=81=AF=E6=9B=B8=E3=81=8D=E3=81=BE=

[#41113] Re: Rails3 M17N — Yukihiro Matsumoto <matz@...> 2010/04/30

まつもと ゆきひろです

[ruby-dev:41043] Re: [Bug #3182] multi-irb may run parallelly

From: keiju@... (石塚圭樹)
Date: 2010-04-22 12:30:56 UTC
List: ruby-dev #41043
けいじゅ@いしつかです.

In [ruby-dev:41031] the message: "[ruby-dev:41031] [Bug #3182]
multi-irb may run parallelly", on Apr/21 20:54(JST) Yusuke Endoh
writes:

>いしつかさん
>遠藤です。

>私の環境で再現はしないのですが、同じ手順を実行すると、kill したあとで、
>キー入力が不思議な挙動になりました。
>
>  irb(main):001:0> irb String
>  irb#1(String):001:0> irb Array
>  irb#2(Array):001:0> kill String
>  => #<IRB::Irb: @context=#<IRB::Context:0x84096bc>, @signal_status=:IN_EVAL, @scanner=#<RubyLex:0x84080a0>>
>  irb(main):002:0> => [String]
>  irb#2(Array):002:0> j
>  NameError: undefined local variable or method `j' for main:Object
>          from (irb):2
>          from ../ruby-trunk-local/bin/irb:12:in `<main>'
>  irb(main):003:0> obs
>  NameError: undefined local variable or method `obs' for main:Object
>          from (irb):3
>          from ../ruby-trunk-local/bin/irb:12:in `<main>'

>SEGV はおいといて、複数の irb スレッドが走りだすのは multi-irb のバグ
>だと思います。

確かに. 

>irb が終了したときに、親の irb スレッドを run するコードがありますが、
>kill された時は kill した irb スレッドがすでに走っているので、親を run
>させるべきでないと思います。
>
>以下のように、kill された irb 一覧を保持しておいて、kill された irb の
>終了時には親を起こさないようにしたところ、不思議な挙動はなくなりまし
>た。

確かにこれでもよい気がしますが, 単純に その終了するsubirbがカレントジョ
ブの時のみカレントジョブの置き換えをするようにするで十分なようです. こ
ちらのパッチを採用したいと思います. 

--- lib/irb/ext/multi-irb.rb	(リビジョン 27443)
+++ lib/irb/ext/multi-irb.rb	(作業コピー)
@@ -172,12 +172,14 @@
       ensure
 	unless system_exit
 	  @JobManager.delete(irb)
-	  if parent_thread.alive?
-	    @JobManager.current_job = @JobManager.irb(parent_thread)
-	    parent_thread.run
-	  else
-	    @JobManager.current_job = @JobManager.main_irb
-	    @JobManager.main_thread.run
+	  if @JobManager.current_job == irb
+	    if parent_thread.alive?
+	      @JobManager.current_job = @JobManager.irb(parent_thread)
+	      parent_thread.run
+	    else
+	      @JobManager.current_job = @JobManager.main_irb
+	      @JobManager.main_thread.run
+	    end
 	  end
 	end
       end

__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---

In This Thread