続 Boehm GC
Boehm GC の続き。
GC Warning: Finalization cycle involving 57204347
GC動作中にこの warning が大量に出る。
finalize.c の ↓か。
if (!GC_is_marked(real_ptr)) { GC_MARKED_FOR_FINALIZATION(real_ptr); GC_MARK_FO(real_ptr, curr_fo -> fo_mark_proc); if (GC_is_marked(real_ptr)) { WARN("Finalization cycle involving %lx\n", real_ptr); } }
んー。なんだろうか。
real_ptr = 57204347 なのだけど Mona OS的にはそのようなリニアアドレスはありえないな。(参照したら死ぬと思う。)
ぐぐってみると、Gauche と shiroさんに辿り着く。(他に日本語の情報はない)。
02/09/18 06:08:37 PDT) satoru ただいま作っているメールフィルタを実行すると
GC Warning: Finalization cycle involving 84bb580
という警告が出力されたりされなかったりしされます。 この警告を防ぐにはどうしたらよいものでしょう。
* Shiro: 0.6.3では解消されます。 応急処置としては、src/port.c:104の GC_REGISTER_FINALIZERマクロ呼び出しを GC_REGISTER_FINALIZER_NO_ORDERにしてみて下さい。 (他にも直すべきところがあるんですが、そこが原因でwarningが出るケースが 一番多いと思います)。
ちょっと今回のケースとは違いそう。
あとで Boehm GC を見直そう。
今日はこのあたりにしてサウンド対応をデバッグしよう。