[#11952] NORETURN — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

24 messages 2001/01/10
[#11956] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11957] Re: NORETURN — matz@... (Yukihiro Matsumoto) 2001/01/10

まつもと ゆきひろです

[#11958] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11959] CVS branches (Re: Re: NORETURN) — matz@... (Yukihiro Matsumoto) 2001/01/10

[#12087] string#index, gsub, []= のバグ? — Beyond <beyond@...>

18 messages 2001/01/27
[#12091] Re: string#index, gsub, []= のバグ? — matz@... (Yukihiro Matsumoto) 2001/01/27

まつもと ゆきひろです

[ruby-dev:12079] Re: GC 内部で落ちる件

From: "T.Shimomura" <redbugml@...>
Date: 2001-01-26 15:43:27 UTC
List: ruby-dev #12079
T.Shimomura です。

On Fri, 26 Jan 2001 15:42:02 +0900
Shugo Maeda <shugo@ruby-lang.org> wrote:

> > Ruby の GC をマルチスレッド対応にする方法なんて思い浮かばなかったので、
> > ruby_init() を呼んだのと別のスレッドから rb_eval_string() を呼ぶ場合、
> > 一時的に GC を無効にすることで対応しています。
> 
> たぶん、他のスレッドから直接rb_eval_string()を呼ぶ代わりに、ruby
> 実行用のスレッドを用意して、evalしたい時はそのスレッドに処理させ
> るようなコードにした方がよいと思います。

そのように作るのがスマートなやり方だというのは理解できます。

しかし、残念なことに、rb_eval_string() される Ruby のスクリプトには
ホストアプリケーションのAPI が含まれており、これらの API はそれぞれ
安全に利用できるスレッドが決まっているのです。


まぁ、そういう場合も存在しうる、ってことで、お手数ですが GC.c の 
gc_enable() と gc_disable() を外部から見えるようにしていただけますよう、
お願いいたします。>まつもとさん

できれば、GC の対象全てを無効にするのではなく、スタックのみ 有効/無効
を指定できるようにしていただけるとありがたいかな、と思いますが、これは
あまりにも例外的な処理ですかねぇ。

-- 
T.Shimomura <redbugml@netlife.gr.jp>

In This Thread