[#26266] pragma on ripper — nobuyoshi nakada <nobuyoshi.nakada@...>
なかだです。
こんにちは、なかむら(う)です。
なかだです。
[#26284] ext/tk/sample/tkextlib/tile/demo.rb で TypeError — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
[#26298] ext/tk/sample/tkextlib/tile/themes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
[#26305] ext/tk/sample/tkextlib/ICONS/viewIcons.rb — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
永井@知能.九工大です.
[#26312] rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org>
最近、とあるプログラム(五月雨)が、無限ループに陥ることが何回かありました。
なかだです。
In article <TYOMLEM04FRaqbC8wSA00000024@tyomlvem02.e2k.ad.ge.com>,
なかだです。
In article <TYOMLEM04FRaqbC8wSA00000025@tyomlvem02.e2k.ad.ge.com>,
なかだです。
In article <TYOMLEM04Rqf69aZbLA0000002d@tyomlvem02.e2k.ad.ge.com>,
なかだです。
In article <200506101543.j5AFhToG009328@sharui.nakada.niregi.kanuma.tochigi.jp>,
In article <8764wlil9l.fsf@m17n.org>,
なかだです。
In article <200506111335.j5BDZkoG019423@sharui.nakada.niregi.kanuma.tochigi.jp>,
まつもと ゆきひろです
In article <1118583170.298416.26464.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1118586617.180748.27381.nullmailer@x31.priv.netlab.jp>,
[#26324] XMLRPC charset — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#26358] test failures and errors — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#26387] warningを減らす — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#26405] WEBrick DoS vulnerability — Tanaka Akira <akr@...17n.org>
NetBSD 2.0 で WEBrick を使って HTTP サーバを動かした場合、クライアント
ごとうゆうぞうです。
In article <20050708.175802.957830318.gotoyuzo@sawara.does.notwork.org>,
In message <87fyupzgcq.fsf@m17n.org>,
In article <20050708.211519.179953950.gotoyuzo@sawara.does.notwork.org>,
In message <87d5ptzdpc.fsf@m17n.org>,
前田です。
In article <42CF1AF2.5000407@ruby-lang.org>,
In message <878y0erpv7.fsf@m17n.org>,
[#26410] irbのlexerが数値認識に失敗 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#26417] test.rb failed 167W: ruby 1.9.0 (2005-06-30) [i686-linux] (boron) — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#26421] Subversion — Shugo Maeda <shugo@...>
前田です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
山本です。
須藤です.
In article <20050703.152549.41008576.kou@cozmixng.org>,
[ruby-dev:26337] Re: rb_gc_mark_threads spin
In article <200506111335.j5BDZkoG019423@sharui.nakada.niregi.kanuma.tochigi.jp>,
nobu@ruby-lang.org writes:
> rb_thread_terminated() から呼ばれた rb_thread_schedule() で、他
> の生きているスレッドに終了したスレッドのコンテキストを保存して
> しまうからじゃないかと思うのですが、確証はありません。
ふむ。curr_thread は実際のスタックに対応するスレッドを表現しているんで
すかね。
> ちなみに、この修正では[ruby-dev:26128]はどうなんでしょうか。
結局、調べてしまいました。
これは curr_thread ですでに rb_thread_terminated が終わって
THREAD_KILLED になっていて、main thread に SystemExit が伝播しないのが
原因のようです。
curr_thread をどうするかという点にも依存しますが、curr_thread を現在の
ままとすれば、こんな感じですかね。
Index: eval.c
===================================================================
RCS file: /src/ruby/eval.c,v
retrieving revision 1.788
diff -u -p -r1.788 eval.c
--- eval.c 10 Jun 2005 14:57:37 -0000 1.788
+++ eval.c 11 Jun 2005 15:55:54 -0000
@@ -4317,17 +4317,6 @@ terminate_process(status, mesg, mlen)
rb_exc_raise(rb_class_new_instance(2, args, rb_eSystemExit));
}
-void
-rb_exit(status)
- int status;
-{
- if (prot_tag) {
- terminate_process(status, "exit", 4);
- }
- ruby_finalize();
- exit(status);
-}
-
/*
* call-seq:
@@ -10225,9 +10214,9 @@ rb_gc_mark_threads()
rb_gc_mark((VALUE)ruby_cref);
if (!curr_thread) return;
- FOREACH_THREAD(th) {
+ FOREACH_THREAD_FROM(main_thread, th) {
rb_gc_mark(th->thread);
- } END_FOREACH(th);
+ } END_FOREACH_FROM(main_thread, th);
if (new_thread.thread) {
rb_gc_mark(new_thread.thread->thread);
rb_gc_mark(new_thread.proc);
@@ -10284,6 +10273,20 @@ static char *th_signm;
#define RESTORE_EXIT 7
extern VALUE *rb_gc_stack_start;
+
+void
+rb_exit(status)
+ int status;
+{
+ if (curr_thread->status == THREAD_KILLED) {
+ rb_thread_main_jump(ruby_errinfo, RESTORE_EXIT);
+ }
+ if (prot_tag) {
+ terminate_process(status, "exit", 4);
+ }
+ ruby_finalize();
+ exit(status);
+}
static void
rb_thread_save_context(th)
--
[田中 哲][たなか あきら][Tanaka Akira]