[#31320] Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...>

-----BEGIN PGP SIGNED MESSAGE-----

124 messages 2007/08/01
[#31321] Re: Import RubyGems to Ruby 1.9 — Nobuyoshi Nakada <nobu@...> 2007/08/01

なかだです。

[#31329] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/08/01

-----BEGIN PGP SIGNED MESSAGE-----

[#31918] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/09/30

-----BEGIN PGP SIGNED MESSAGE-----

[#31970] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/08

-----BEGIN PGP SIGNED MESSAGE-----

[#32023] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/10/11

まつもと ゆきひろです

[#32062] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/15

-----BEGIN PGP SIGNED MESSAGE-----

[#32066] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/10/15

まつもと ゆきひろです

[#32068] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/15

-----BEGIN PGP SIGNED MESSAGE-----

[#32069] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/10/15

まつもと ゆきひろです

[#32070] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/15

-----BEGIN PGP SIGNED MESSAGE-----

[#32073] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/10/15

まつもと ゆきひろです

[#32079] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/16

-----BEGIN PGP SIGNED MESSAGE-----

[#32080] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/10/16

まつもと ゆきひろです

[#32132] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/23

-----BEGIN PGP SIGNED MESSAGE-----

[#32081] Re: Import RubyGems to Ruby 1.9 — Takahiro Kambe <taca@...> 2007/10/16

In message <471447D5.5050902@sarion.co.jp>

[#32087] Re: Import RubyGems to Ruby 1.9 — "Akinori MUSHA" <knu@...> 2007/10/17

 Rubygems は、基本的に他のパッケージシステムから包みやすい作り

[#32104] Re: Import RubyGems to Ruby 1.9 — akira yamada <akira@...> 2007/10/20

Tuesday 16 October 2007 14:09:13 に NAKAMURA, Hiroshi さんは書きました:

[#32109] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/20

-----BEGIN PGP SIGNED MESSAGE-----

[#31332] Re: Import RubyGems to Ruby 1.9 — Tadayoshi Funaba <tadf@...> 2007/08/01

> ちなみに「ruby/1.9.1の標準添付からどのライブラリを外すか?」という議論も

[#31858] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/09/25

-----BEGIN PGP SIGNED MESSAGE-----

[#31872] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/09/27

-----BEGIN PGP SIGNED MESSAGE-----

[#31905] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/09/29

-----BEGIN PGP SIGNED MESSAGE-----

[#31906] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/09/29

まつもと ゆきひろです

[#31910] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/09/30

-----BEGIN PGP SIGNED MESSAGE-----

[#31920] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/09/30

まつもと ゆきひろです

[#31323] Bignum#to_s の Karatsuba 基数変換による高速化 — "Kenta Murata" <muraken@...>

むらけんです.

16 messages 2007/08/01
[#31326] Re: Bignum#to_s の Karatsuba 基数変換による高速化 — Yukihiro Matsumoto <matz@...> 2007/08/01

まつもと ゆきひろです

[#31327] Re: Bignum#to_s の Karatsuba 基数変換による高速化 — "Kenta Murata" <muraken@...> 2007/08/01

むらけんです.

[#31328] Re: Bignum#to_s の Karatsuba 基数変換による高速化 — Yukihiro Matsumoto <matz@...> 2007/08/01

まつもと ゆきひろです

[#31525] いくつかのバグ報告と提案(5点) — eklerni <eklerni@...>

From:eklerni

13 messages 2007/08/20

[#31539] strtod の精度 — Satoshi Nakagawa <snakagawa@...>

中川といいます。

27 messages 2007/08/20
[#31542] Re: strtod の精度 — Yukihiro Matsumoto <matz@...> 2007/08/20

まつもと ゆきひろです

[ruby-dev:31384] Re: simultaneous exceptions dump core

From: SASADA Koichi <ko1@...>
Date: 2007-08-12 18:03:31 UTC
List: ruby-dev #31384
 ささだです。

Yusuke ENDOH wrote:
> 同じスレッドにほぼ同時に複数の例外が発生するとき落ちるようです。
> timeout を使うコードを Ctrl+C で止めるとたまに発生するので気が付きました。
> 
> 
> 少し追ってみましたが、状況がややこしくてどこからどこまでが想定外の挙動なのか
> わかりませんでした。以下のようなことが起きているようです。
> 
> - 1 発目の raise で rb_longjmp が呼ばれる
> - rb_longjmp 中の rb_exc_new (eval.c:660 あたり) でコンテキストスイッチする
> - 別スレッドから 2 発目の raise で rb_longjmp に再入する
> - JUMP_TAG(TAG_FATAL); が実行される (eval.c:654 あたり)
> - rb_ivar_get(err, idThrowState) が実行される (insnhelper.ci:1303 あたり)
> - #__ThrowState__ は初期化されておらず、警告とともに Qnil が返る
> - th->state = FIX2INT(Qnil) が実行される (insnhelper.ci:1303 あたり)
> - Stack consistency error になる

 詳細に追っていただいてありがとうございました。「Thread#raise に
よって複数のスレッドから例外を投げた時の挙動」は、1.8 以前ではなかっ
たものなんですよね。まず、この仕様をどうするべきかの議論が必要かと思
います。

 いくつかの案を上げてみます。

(1) すでに対象スレッドに例外が投げられていた場合、ブロック
(2) すでに対象スレッドに例外が投げられていた場合、キューイング
(3) すでに対象スレッドに例外が投げられていた場合、例外

 (3) はあんまり、(2) は、結局投げた例外が無駄になる可能性がある、と
いうことで、1.8 と同じ挙動となる (1) がいいのではないかと思っています。

 以下は (1) のパッチです。上記プログラムは、一応問題がなくなりまし
た。しかし、Ctrl+C の問題は解決しなさそうな気がする...。


Index: thread.c
===================================================================
--- thread.c	(リビジョン 12920)
+++ thread.c	(作業コピー)
@@ -758,12 +758,16 @@
 {
     VALUE exc;

+  again:
     if (rb_thread_dead(th)) {
 	return Qnil;
     }

+    if (th->thrown_errinfo != Qnil) {
+	rb_thread_schedule();
+	goto again;
+    }
     exc = rb_make_exception(argc, argv);
-    /* TODO: need synchronization if run threads in parallel */
     th->thrown_errinfo = exc;
     rb_thread_ready(th);
     return Qnil;

-- 
// SASADA Koichi at atdot dot net


In This Thread