ruby-trunk-changes r31025 - r31027

本日は IO#fcntl, IO#ioctl の修正がありました。

kosaki:r31025 2011-03-05 01:38:34 +0900

IO#fcntl と IO#ioctl で fcntl(2), ioctl(2) の呼び出しはブロックする場合があるので rb_thread_blocking_region() を使ってシステムコール呼び出し中は GVL を解放するようにしています。[ruby-core:35417][Bug #4463]
rb_thread_io_blocking_region() (close 検出するやつ)じゃなくてもいいんでしょうか。そういえば rb_thread_io_blocking_region() は [ruby-dev:43199] でささださんが少し反対意見を出していたけど特に進展していないままでしたね。

それから IO#fcntl のテストを追加しています。この GVL 解放についてのテストではなくてそもそもテストがないので作ったという感じです。fcntl/ioctl は使い方がそもそもプラットフォームに依存しているので Linux/x86_64 の環境のみです。

svn:r31026 2011-03-05 01:38:38 +0900

version.h の日付更新。

kosaki:r31027 2011-03-05 19:45:01 +0900

r31025 の fcntl のテストを少し修正。メソッド定義を if で分岐していたのを中でスキップするようにしていたり、自前で定義していた定数のうち Fcntl や IO に存在していたものを利用したりなど。