From: Shugo Maeda Date: 2010-05-09T09:05:59+09:00 Subject: [ruby-dev:41234] Re: MonitorMixin::ConditionVariable#wait timeout 前田です。 お返事が遅くなってすみません。 2010年5月5日9:32 Yusuke ENDOH : >> ::ConditionVariable#waitがtimeoutに対応しているようなので、引数を >> そのまま渡すようにしたいと思います。 >> ただ、戻り値については1.8と非互換になりますが、timeoutで返って来たのか >> 判定する術がないので、常にtrueを返すことにしたいと思います。 >> # ついでにドキュメントを追加します。 > > [Bug #2629] で ::ConditionVariable#wait の API 設計に race condition が > あることがわかりました。 > 秒数ではなく絶対時刻で指定すべき (少なくとも、絶対時刻は受け付けるべき) > ようです。また、timeout で帰ってきたかどうかを返り値として返した方が > よいという指摘もあります。 > > 絶対時刻を受け付けるためには thread.c を結構いろいろ変えないといけない > ので、すでに feature freeze 後ということもあり、保守的ですが 1.9.2 では > revert しようと思いますが、いかがでしょうか。 その後の議論で、上記の対応が必ずしもすぐに必要というわけではないと いう話になっているような気がするのですが、合っているでしょうか。 もしそうであれば、1.9.2のリリース後に絶対時刻*も*受け付けるようにする ということにして、revertはしないことにしませんか。 -- Shugo Maeda