ruby-trunk-changes r59027 - r59032

今日は IO#close した時の同じ IO オブジェクトの IO 待ちしていた Thread への通知の不具合修正などがありました。

nobu: r59027 2017-06-06 21:30:17 +0900

r59022 の環境変数 RUBY_DEBUG の codepage の指定の解析で ":" で 2つの codepage を指定しなかった時に len が更新できていなかったのを修正しています。

normal: r59028 2017-06-07 07:55:35 +0900

r59020 の IO#close 時にその fd で IO 待ちしている Thread に通知する処理の修正のリトライ。 struct waiting_fd::th を NULL にクリアして冗長な通知を抑制するようにしています。 r59020 は fd をクリアしてたのと、busy を更新してなかったのをするようになったのが違いですね。 [ruby-core:81581] [Bug #13632]

svn: r59029 2017-06-07 07:55:36 +0900

version.h の日付更新。

normal: r59030 2017-06-07 09:32:02 +0900

thread.c の rb_thread_fd_close() で rb_notify_fd_close() で busy = 1 が返されている限り繰り返し呼び出す処理の合間に rb_thread_schedule() を呼び出してビジーループになるのを避けるようにしています。この関数は ruby のコアではもう使ってないそうですが拡張ライブラリ用に C API として公開されていたので残しているみたいです。

svn: r59031 2017-06-07 09:32:03 +0900

r59030 で新規追加したファイルの svn property 設定。

normal: r59032 2017-06-07 09:32:07 +0900

tool/update-deps を実行して common.mk の依存関係を更新しています。 file.o と rational.o に id.h への依存が追加されています。