free as in air

2007|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|09|11|12|
2012|03|04|05|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|06|09|
トップ «前の日記(2007-11-13) 最新 次の日記(2007-11-15)» /編集

2007-11-14 [長年日記]

§ [rjb] エラーチェック

コンストラクタでヒープエラーが発生してもわからない件に対処するため例外のチェックを足した。JNIのAPI呼出と例外のチェックはもうセットでもいい気がするんだけど、うまくまとめらんないかね。ラップするかマクロでやるぐらいしか思いつかない。

まあそれはいいんだけど、Object.finalize()をオーバーライドしても、プロセスが終了するまでに実行されていない気がするのだが、シスプリ©Yuguiで試しているので出力されないだけかも。さて…。

Java-RubyをまたぐGC

Ruby側のGCのタイミングをObjectSpaceで拾うことができるので、そこからJava側にGC対象のオブジェクトを知らせることで何とか実現。単にJavaをラップしている代理オブジェクトはこれでいけた。

ただし、Javaから呼ばれるRubyオブジェクトについては、JavaとRubyの両方から要らないと判断されない限り捨てられない。いろいろ考えた結果、これらのオブジェクトは手動で削除することにした。

[yajbについていろいろ より引用]

究極的にはこの辺の気がするけど荷が重い。とりあえずyajbのソースを読むというTODO。