[#43465] GVL改善案 — KOSAKI Motohiro <kosaki.motohiro@...>
小崎です
[#43467] [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...>
kosakiです
ささだです.
> ささだです.
ささだです.
> ささだです.
自己解決しました
ささだです.
>> ということは危ないのは RUBY_VM_SET_INTERRUPT() がロストしたときに、タイムアウトなしの
>>> ということは危ないのは RUBY_VM_SET_INTERRUPT() がロストしたときに、タイムアウトなしの
[#43468] Re: [ruby-changes:19438] Ruby:r31478 (trunk): * test/date/*.rb: use skip /w messages. — KOSAKI Motohiro <kosaki.motohiro@...>
2011/5/8 tadf <ko1@atdot.net>:
> 表示したい場合を除いてはskipよりもreturnを使うようお願いしています。
>> 表示したい場合を除いてはskipよりもreturnを使うようお願いしています。
[#43476] [Ruby 1.9 - Feature #4653][Open] [PATCH 1/1] new method Enumerable#rude_map — Shyouhei Urabe <shyouhei@...>
遠藤です。
(05/08/2011 11:21 PM), Yusuke ENDOH wrote:
遠藤です。
卜部です。
At Mon, 9 May 2011 16:35:31 +0900,
遠藤です。
[#43493] [Ruby 1.9 - Feature #4657][Open] add option to hide skip messages on unit/test — Shota Fukumori <sorah@...>
> -q, --hide-skipでskipメッセージが表示されなくなります。
(05/09/2011 06:31 PM), Shota Fukumori wrote:
> (05/09/2011 06:31 PM), Shota Fukumori wrote:
2011/5/9 KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>:
> 2011/5/9 KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>:
[#43502] draft schedule of Ruby 1.9.3 — "Yuki Sonoda (Yugui)" <yugui@...>
-----BEGIN PGP SIGNED MESSAGE-----
Hello,
(ruby-coreはずしました)
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#43549] RubyKaigi2011に'CRuby'コミッタの皆さまを招待いたします(締切:2011-06-15) — Kakutani Shintaro <shintaro.kakutani@...>
'CRuby'コミッタの皆さまへ
[#43554] [Ruby 1.9 - Bug #4696][Assigned] thread.c#lock_func() が spurious wakeup unsafe — Motohiro KOSAKI <kosaki.motohiro@...>
[#43606] [Ruby 1.9 - Bug #4808][Open] thread_wait_for() eats 100% of CPU power — Hidetoshi Nagai <nagai@...>
> いつからかは把握できていませんが (少なくとも 1.9.2p0 では発生しません),
[ruby-dev:43537] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える
>> しばらく考えたところ、書き込み側で atomic ops 使えば十分という気がしてきました。 >> それなら、readerは速度低下0なのでパフォーマンス問題がおこりようがないし。 >> Linuxでしかテストしてませんが、こんなもんでどうでしょうか? > > atomic operation が十分に仮定できるのなら,これでもいいような気がします. > > ちなみに,rb_atomic_t は int でいいのかしら,とちょっと思った(いや, > この辺の常識を知らないもので.rb_atomic_int_t じゃないんだな,って). Windows は LONG しかサポートしてないですし、厳密な話をするとsparcとかは 命令セットの都合上たしかintの中でも24bitぐらいしか使えないはずなので、 型名にintを入れるのは反対です。 あと、64bitなatomic ops は出来ない32bit CPUが多いので、32bit CPUが滅ぶまで あんまり検討にいれたくないとか思ってます。ごにょごにょ > 自分が持っている対案は,interrupt_flag はあくまでヒントとして扱い,何 > か不都合があっても後でリカバーできる情報にしておく.消しちゃ行けない情報 > (シグナルの到達判定とか)は,別に用意して,それを参照しなくてはいけない > シチュエーション(GVL の外でシグナル監視とか)は,そっちも参照する,とい > うのがいいんでないかと思っていましたが,複雑です.小崎さんの提案は,その > 点で interrupt_flag をキッチリかっちり管理する,という意味でわかりやすい > と思います Windowsとgcc 以外については、いままでと同じ動作になるので「今より悪くなることはない」 という意味で許容範囲かなと思ってました。 また、atomic opsがポータビリティーを下げる可能性についても考えましたが、現状すでに signal 処理が atomic ops に依存している以上、悪化しようがないと思います。たんに既知の 問題(非Windowsかつ非gcc環境でたまにレースコンディションで悲しい思いをする)が直らないだけです。で、ユースケースを考えてみてもそういうプラットフォームで365日 RoRをぶん回すとかきっとしてないと思うので、実用上問題ないでしょう。better awk として使う限り、そうそう当たりませんですし。 別案として、3つのビットフラグを別の変数にしてしまうというのがあったのですが、ささださんから IRCで RUBY_VM_CHECK_INTS() でロード命令が2つ増えるのが気になると指摘されたため 変更した経緯があります。(が、正直いうとロード命令2つって誤差だと思うんですよ) 最後にささださんの提案に対する見解ですが、大幅なメリットが見つかるまでは反対です。 そういうトリッキーな実装は「セキュリティイシューが上がってきたから至急かつ、ABIを壊さない形で直さないといけないけど良い案がないー」とかいう状況でしかたなくやるものであって、普段からやるのはいかがなものかと思います。ささださんが理解していても、別の誰かがそのうち前提を壊すコミットする可能性が高いという意味で ・・・と、いろいろと説得材料をならべてみましたが、どうしても反対というのであれば私は手を引きます。