[#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:12080] Re: GC 内部で落ちる件

From: nobu.nakada@...
Date: 2001-01-26 16:08:15 UTC
List: ruby-dev #12080
なかだです。

At Sat, 27 Jan 2001 00:43:27 +0900,
T.Shimomura <redbugml@netlife.gr.jp> wrote:
> > > Ruby の GC をマルチスレッド対応にする方法なんて思い浮かばなかったので、
> > > ruby_init() を呼んだのと別のスレッドから rb_eval_string() を呼ぶ場合、
> > > 一時的に GC を無効にすることで対応しています。
> > 
> > たぶん、他のスレッドから直接rb_eval_string()を呼ぶ代わりに、ruby
> > 実行用のスレッドを用意して、evalしたい時はそのスレッドに処理させ
> > るようなコードにした方がよいと思います。
> 
> そのように作るのがスマートなやり方だというのは理解できます。
> 
> しかし、残念なことに、rb_eval_string() される Ruby のスクリプトには
> ホストアプリケーションのAPI が含まれており、これらの API はそれぞれ
> 安全に利用できるスレッドが決まっているのです。

  Ruby 自体も同様に安全に利用できるスレッドが決まっているわけで
すが、その API をじかに使わずに同じく指定のスレッドに要求を渡す
形にした方がいいんじゃないでしょうか。

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

  マルチスレッドで問題が出るのは GC だけとは限らないような気が
しますが。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread