[#21058] dRuby failed, ruby 1.8.0 preview7? — Masatoshi SEKI <m_seki@...>
咳といいます。
5 messages
2003/08/01
[#21072] __libc_ia64_register_backing_store_base — akira yamada / やまだあきら <akira@...>
5 messages
2003/08/02
[#21081] conversion from float to string — Yoshiki Wada <ysk@...5.so-net.ne.jp>
和田と申します。
8 messages
2003/08/02
[#21082] Re: conversion from float to string
— matz@... (Yukihiro Matsumoto)
2003/08/02
まつもと ゆきひろです
[#21083] Re: conversion from float to string
— Koji Arai <JCA02266@...>
2003/08/02
新井です。
[#21093] (ary - ary) preserves duplicated values — Koji Arai <JCA02266@...>
新井です。
7 messages
2003/08/03
[#21134] Re: [PATCH] Change configure to use Cygwin net release naming convention (PR#1077) — WATANABE Hirofumi <eban@...>
わたなべです。
4 messages
2003/08/05
[#21137] with-static-linked-ext — nobu.nakada@...
なかだです。
10 messages
2003/08/05
[#21140] Re: with-static-linked-ext
— nobu.nakada@...
2003/08/05
なかだです。
[#21142] Re: with-static-linked-ext
— matz@... (Yukihiro Matsumoto)
2003/08/05
まつもと ゆきひろです
[#21146] Regexp.alt(pat1, pat2, ...) — Tanaka Akira <akr@...17n.org>
提案なのですが、複数の Regexp (や String) を | でつなぐ Regexp.alt
4 messages
2003/08/05
[#21153] ChangeLog — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
12 messages
2003/08/06
[#21154] Re: ChangeLog
— matz@... (Yukihiro Matsumoto)
2003/08/06
まつもと ゆきひろです
[#21159] Re: ChangeLog
— nobu.nakada@...
2003/08/06
なかだです。
[#21160] Re: ChangeLog
— matz@... (Yukihiro Matsumoto)
2003/08/06
まつもと ゆきひろです
[#21170] soap4r to /src/ruby/lib — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです。
11 messages
2003/08/08
[#21176] marshalling ivtbl of Time — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです。
10 messages
2003/08/11
[#21475] Re: marshalling ivtbl of Time
— Tanaka Akira <akr@...17n.org>
2003/10/03
In article <1065144546.011594.19001.nullmailer@picachu.netlab.jp>,
[#21179] [BUG]net/httpでBUG — "yamamoto madoka" <dan@...2.so-net.ne.jp>
こんにちは、山本 円と申します。
8 messages
2003/08/11
[#21183] Process::UID.switch, Process::GID.switch — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
5 messages
2003/08/11
[#21216] [PATCH] reducing PUSH/POP/EXEC_TAG() for retry — nobu.nakada@...
なかだです。
4 messages
2003/08/21
[#21225] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
14 messages
2003/08/22
[#21227] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values.
— nobu.nakada@...
2003/08/22
なかだです。
[#21228] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values.
— matz@... (Yukihiro Matsumoto)
2003/08/22
まつもと ゆきひろです
[#21229] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values.
— nobu.nakada@...
2003/08/22
なかだです。
[#21231] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values.
— matz@... (Yukihiro Matsumoto)
2003/08/23
まつもと ゆきひろです
[#21232] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values.
— nobu.nakada@...
2003/08/23
なかだです。
[#21233] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values.
— matz@... (Yukihiro Matsumoto)
2003/08/23
まつもと ゆきひろです
[#21234] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values.
— Koji Arai <JCA02266@...>
2003/08/23
新井です。
[#21236] Re: [ruby-cvs] ruby: * enum.c (inject_i): userb_yield_values.
— Koji Arai <JCA02266@...>
2003/08/23
新井です。
[#21237] SEGV — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
12 messages
2003/08/23
[#21259] Regexp#initialize が $SAFE==4 で落ちる — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
9 messages
2003/08/25
[#21262] Re: Regexp#initialize が $SAFE==4 で落ちる
— matz@... (Yukihiro Matsumoto)
2003/08/26
まつもと ゆきひろです
[#21264] Re: Regexp#initializeが $SAFE==4 で落ちる
— nobu.nakada@...
2003/08/26
なかだです。
[#21280] スレッド内の例外でRuby停止 — "yamamoto madoka" <dan@...2.so-net.ne.jp>
こんにちは、山本と申します。
9 messages
2003/08/29
[#21281] 大量メモリ消費攻撃に対する対応 — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
16 messages
2003/08/29
[#21285] Re: 大量メモリ消費攻撃に対する対応
— matz@... (Yukihiro Matsumoto)
2003/08/29
まつもと ゆきひろです
[#21288] Re: 大量メモリ消費攻撃に対する対応
— Hidetoshi NAGAI <nagai@...>
2003/08/29
永井@知能.九工大です.
[#21306] Re: 大量メモリ消費攻撃に対する対応
— matz@... (Yukihiro Matsumoto)
2003/09/03
まつもと ゆきひろです
[#21309] Re: 大量メモリ消費攻撃に対する対応
— Hidetoshi NAGAI <nagai@...>
2003/09/03
永井@知能.九工大です.
[ruby-dev:21291] Re: スレッド内の例外でRuby停止
From:
nobu.nakada@...
Date:
2003-08-30 08:37:25 UTC
List:
ruby-dev #21291
なかだです。
At Fri, 29 Aug 2003 19:29:49 +0900,
yamamoto madoka wrote:
> 大変申し訳ありません、
> このPatchを当てると別のコードで同症状が出るようになってしまいました。
[ruby-dev:21280]の原因は、$stderr.writeが終了したスレッドで実行
されてしまうことです。そしてflushでIO待ちになるときに死んだはず
のスレッドが生き返ってしまっています。
ということで、メインスレッドに切り替わってから出力するようにす
れば、解決するんではないでしょうか。
Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.525
diff -u -2 -p -r1.525 eval.c
--- eval.c 30 Aug 2003 05:26:47 -0000 1.525
+++ eval.c 30 Aug 2003 08:30:44 -0000
@@ -3762,8 +3762,7 @@ rb_mod_protected_method_defined(mod, mid
}
-#define terminate_process(status, mesg, mlen) rb_exc_raise(system_exit(status, mesg, mlen))
-
+NORETURN(static VALUE terminate_process _((int, const char *, long)));
static VALUE
-system_exit(status, mesg, mlen)
+terminate_process(status, mesg, mlen)
int status;
const char *mesg;
@@ -3774,5 +3773,5 @@ system_exit(status, mesg, mlen)
args[1] = rb_str_new(mesg, mlen);
- return rb_class_new_instance(2, args, rb_eSystemExit);
+ rb_exc_raise(rb_class_new_instance(2, args, rb_eSystemExit));
}
@@ -8160,4 +8159,5 @@ static char *th_signm;
#define RESTORE_RAISE 5
#define RESTORE_SIGNAL 6
+#define RESTORE_EXIT 7
extern VALUE *rb_gc_stack_start;
@@ -8252,4 +8252,10 @@ rb_thread_switch(n)
rb_raise(rb_eSignal, "SIG%s", th_signm);
break;
+ case RESTORE_EXIT:
+ ruby_errinfo = th_raise_argv[0];
+ ruby_current_node = th_raise_node;
+ error_print();
+ terminate_process(1, 0, 0);
+ break;
case RESTORE_NORMAL:
default:
@@ -8270,5 +8276,5 @@ rb_thread_switch(n)
#endif
-static void rb_thread_restore_context _((rb_thread_t,int));
+NORETURN(static void rb_thread_restore_context _((rb_thread_t,int)));
static void
@@ -8412,4 +8418,18 @@ rb_thread_fd_close(fd)
}
+NORETURN(static void rb_thread_main_jump _((VALUE, int)));
+static void
+rb_thread_main_jump(err, tag)
+ VALUE err;
+ int tag;
+{
+ curr_thread = main_thread;
+ th_raise_argc = 1;
+ th_raise_argv[0] = err;
+ th_raise_node = ruby_current_node;
+ rb_thread_restore_context(main_thread, tag);
+}
+
+NORETURN(static void rb_thread_deadlock _((void)));
static void
rb_thread_deadlock()
@@ -8423,9 +8443,5 @@ rb_thread_deadlock()
rb_exc_raise(e);
}
- curr_thread = main_thread;
- th_raise_argc = 1;
- th_raise_argv[0] = e;
- th_raise_node = ruby_current_node;
- rb_thread_restore_context(main_thread, RESTORE_RAISE);
+ rb_thread_main_jump(e, RESTORE_RAISE);
}
@@ -9420,12 +9436,10 @@ rb_thread_start_0(fn, arg, th_arg)
else {
/* delegate exception to main_thread */
- rb_thread_raise(1, &ruby_errinfo, main_thread);
+ rb_thread_main_jump(ruby_errinfo, RESTORE_RAISE);
}
}
else if (th->safe < 4 && (ruby_thread_abort || th->abort || RTEST(ruby_debug))) {
- VALUE err = system_exit(1, 0, 0);
- error_print();
/* exit on main_thread */
- rb_thread_raise(1, &err, main_thread);
+ rb_thread_main_jump(ruby_errinfo, RESTORE_EXIT);
}
else {
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦