From: matz@... (Yukihiro Matsumoto) Date: 2001-02-21T14:52:23+09:00 Subject: [ruby-list:28128] Re: C からのコールバックでエラー まつもと ゆきひろです In message "[ruby-list:28126] Re: C からのコールバックでエラー" on 01/02/21, "masahiko yamada/Daiwasbcm" writes: |> コールバックと GC で落ちるというと、コールバックが別スレッド |> で呼び出されてるとかがありそうです。Ruby 自体は thread safe で |> はありません。 | |だとするとちょっと面倒ですね。いま GC.disableと GC.enableのタイミ |ングをいろいろ試行してみたのですが、どれもうまく行きませんでした。 もしcallbackがメインスレッドと別のスレッドで動作するのなら、 トップレベルでdiableする以外には方法はないような気がします。 # もう完全にGCを止めちゃう。 これでもかなり怪しくて、場合によっては mutex などで保護する 必要があるように思います。 あるいは、コールバックを排他制御して、途中で生成しているstr を別のグローバル変数(rb_global_variable()で保護する)に変更す るとあるいはうまくいくかもしれません。自信は全然ないですけど。