ruby-trunk-changes r29427 - r29431

今日は Yokohama.rb の第1回でした。少し遅くなりましたが 10/09 のコミットです。

nobu:r29427 2010-10-09 08:16:20 +0900

rb_threadptr_revmove_event_hook -> rb_threadptr_remove_event_hook という非公開関数名の typo 修正。

nobu:r29428 2010-10-09 10:51:19 +0900

処理の途中に割り込んで実行されるイベントの実行抑制を種別毎に指定できるように変更されています。種別には TRACE(set_trace_func でセットしたもの?)と Thread 毎のもの、VM全体のものがあります。次の修正のための布石と思われます。

nobu:r29429 2010-10-09 11:00:21 +0900

[ruby-dev:42350] で報告された、set_trace_func でセットした Proc オブジェクト内で set_trace_func(nil) でフックが削除されると SEGV する不具合の修正。イベントフック処理中にイベントをすぐに削除せずに、削除予約のマークをつけてスキップし、後で回収するようにしています。
remove_defered_event_hook でリストの先頭が書き変わるかどうかをチェックしている方法(削除されない要素があったら root を変更しておく)が最初わからなくて一瞬バグかと思いました。

nobu:r29431 2010-10-09 16:54:42 +0900

configure.in でクオートの追加。autoconf 2.68 向けの対応だそうです。