[ruby-list:47316] 拡張ライブラリ作成時のrb_gc_mark()の呼び出し方について

From: tueda <tueda@...>
Date: 2010-08-18 03:32:08 UTC
List: ruby-list #47316
こんにちは。上田です。

今C++で書いている拡張ライブラリがGC.enableの時しばらくするとセグメンテー
ションフォールトで落ちてしまいます。
GC.disableの時は落ちないので原因はGCまわりのミスだと思っています。
で、 rb_gc_mark の使い方がさっぱりわからないのですが、どこかに解説はない
でしょうか?
そもそもGCが始まってマークフェーズで呼び出される拡張ライブラリ側の関数が
わかりません(自分で登録する必要がある?)。
従ってどこに rb_gc_mark を書けばいいのかがわかりません。
また ruby_xmalloc を使って確保したメモリ領域も自分でマークしなければなら
ないのでしょうか?
README.EXT.ja あたりを見ても特に何も書いてないのですが……
どなたかここを読めという資料を教えてくれるとうれしいです。



In This Thread

Prev Next