β1のテスト

Problems with beta install on Windows
やっぱ、GACに問題がありそーなので力業で動かすことに。で、早速テストしてみましたがGC周りの不具合は0.31から変わらずみたいです。6/30のリリースまでにWindows版が動くようになるのは難しい気がします。Windows版は取りあえず.NETで開発するしかなさそう・・・

(追記)
ちょっと悔しいのでMonoのソースを追ってみたら環境変数(GC_DONT_GC)でGCのON/OFFが出来ることが分かりました。試しにOFFにしてみたところ正常動作するようになりました。

該当箇所(mono/mono/metadata/gc.c)

if (getenv ("GC_DONT_GC")) {
        gc_disabled = TRUE;
        return;
}

finalizer_event = CreateEvent (NULL, FALSE, FALSE, NULL);
pending_done_event = CreateEvent (NULL, TRUE, FALSE, NULL);
shutdown_event = CreateEvent (NULL, TRUE, FALSE, NULL);
thread_started_event = CreateEvent (NULL, TRUE, FALSE, NULL);
if (finalizer_event == NULL || pending_done_event == NULL || 
    shutdown_event == NULL || thread_started_event == NULL) {
        g_assert_not_reached ();
}

GC_finalize_on_demand = 1;
GC_finalizer_notifier = finalize_notify;

mono_thread_create (mono_domain_get (), finalizer_thread, NULL);

WaitForSingleObject (thread_started_event, INFINITE);

ファイナライザスレッドに問題がありそうですね。直して偉い人・・・(^^;