今日は autoload の排他処理の race condition の修正などがありました。
[48002ff187] Burdette Lamar 2022-05-14 13:38:09 UTC
標準添付ライブラリ fileutils の FileUtils#ln の rdoc 用コメントにサンプル多く使うように説明を追記しています。
[32de6097b2] Samuel Williams 2022-05-15 04:07:12 UTC
fd6cef79f54bebab1a49256034687dcc01a09eab で Module#autoload 用の排他処理を Thread::Mutex オブジェクトを使うように変更したものにやはり race condition があったらしく、さらにグローバル変数(正確には static 変数)として mutex を追加して Init_var_tables() で初期化するようにして struct autoload_state のリストを操作する時に排他処理するようにしています。また同じく static 変数の autoload_featuremap の初期化(rb_ident_hash_new() の呼び出し)を rb_autoload_str() の呼び出しにまで遅延していたのも Init_var_tables() でプロセス起動時に済ませておくようにしています。しかし他にも細かく const_tbl_update() に autoload 時用のフラグを引数に追加して定数のキャッシュ操作を変更してたりデバッグ用と思われるマクロが有効になってたりするので性能への影響はないか気になりますね。 https://github.com/ruby/ruby/pull/5898 [ruby-core:108552] [Bug #18782]
[105609d382] git 2022-05-15 04:07:36 UTC
version.h の日付更新