[#43284] [Ruby 1.9 - Bug #4456] [Open] Time#strftime で %F 指定子に大きな幅を指定した際の不具合 — tadayoshi funaba <redmine@...>
14 messages
2011/03/02
[#44141] [Ruby 1.9 - Bug #4456] Time#strftime で %F 指定子に大きな幅を指定した際の不具合
— Masaya Tarui <tarui@...>
2011/07/17
[#44142] Re: [Ruby 1.9 - Bug #4456] Time#strftime で %F 指定子に大きな幅を指定した際の不具合
— Masaya TARUI <tarui@...>
2011/07/17
非常に重要な所が抜けてました。
[#43285] [Ruby 1.9 - Bug #4457] [Open] Time#strftime で %z 指定子などに大きな幅を指定した際の不具合 — tadayoshi funaba <redmine@...>
6 messages
2011/03/02
[#43296] [Ruby 1.9 - Bug #3990] [Assigned]tests of rexml/rss reports many errors and failures without iconv — Yui NARUSE <redmine@...>
5 messages
2011/03/03
[#43297] Re: [Ruby 1.9 - Bug #3990] [Assigned]tests of rexml/rss reports many errors and failures without iconv
— SASADA Koichi <ko1@...>
2011/03/03
(2011/03/03 18:56), Yui NARUSE wrote:
[#43298] Re: [Ruby 1.9 - Bug #3990] [Assigned]tests of rexml/rss reports many errors and failures without iconv
— "U.Nakamura" <usa@...>
2011/03/03
こんにちは、なかむら(う)です。
[#43317] [Ruby 1.9 - Bug #4474][Open] 複数のスレッドからトランザクションに入ろうとした場合のPStoreの挙動 — Masaki Matsushita <redmine@...>
9 messages
2011/03/06
[#43346] [BUG] lib/irb/locale.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
8 messages
2011/03/24
[#43347] Re: [BUG] lib/irb/locale.rb
— Yugui <yugui@...>
2011/03/24
2011/3/24 Keiju ISHITSUKA <[email protected]>:
[#43355] [Ruby 1.9 - Feature #4529][Assigned] date_core と long 型 — Yui NARUSE <redmine@...>
10 messages
2011/03/25
[#43359] [Ruby 1.9 - Feature #4529][Rejected] date_core と long 型
— tadayoshi funaba <redmine@...>
2011/03/26
[#43360] Re: [ruby-dev:43359] [Ruby 1.9 - Feature #4529][Rejected] date_core と long 型
— "NARUSE, Yui" <naruse@...>
2011/03/26
(2011/03/26 19:21), tadayoshi funaba wrote:
[#43365] [Ruby 1.9 - Bug #4536][Open] 定数参照について1.8と1.9の違い — Yukihiro Matsumoto <matz@...>
11 messages
2011/03/29
[#43366] Re: [ruby-dev:43365] [Ruby 1.9 - Bug #4536][Open] 定数参照について1.8と1.9の違い
— SASADA Koichi <ko1@...>
2011/03/29
ささだです.
[ruby-dev:43333] Re: [Ruby 1.9 - Bug #4474] 複数のスレッドからトランザクションに入ろうとした場合のPStoreの挙動
From:
Yusuke ENDOH <mame@...>
Date:
2011-03-08 12:31:10 UTC
List:
ruby-dev #43333
遠藤です。 2011年3月7日9:47 Masaki Matsushita <[email protected]>: > sora_hさんが書いたパッチと異なる点は、トランザクションに入っているスレッドがあるかどうかを格納しているインスタンス変数@transactionを廃して、 > Mutexがロックされているかどうかでトランザクションに入っているスレッドがあるかどうかを判定している点です。 > また、第2引数thread_safeの真偽に関わらずトランザクション内の処理をMutexで同期しますが、互換性の為、thread_safeが偽である場合にトランザクションを入ろうとすると例外nested transactionが発生するようにしてあります。 ちょっとだけ考古学してみました。Hongli Lai の元記事がこちら。 http://izumi.plan99.net/blog/index.php/2008/03/26/making-pstore-reaaaally-fast/ とにかく高速化したかったみたいですね。最後に "I’ll send a patch to ruby-core so that this can be merged back upstream" とあるけれど、 そのメールは見つかりませんでした。matz が勝手に (または ruby-core 以外で話をして) 取り込んだんですかね。 r26673 で thread_safe が全然動いてなかったお粗末なバグが修正されて いることから、Hongli Lai は thread_safe のテストを全くやらなかった と思われます。なので、thread_safe のときにも nested transation 例外 が投げられるのは特に意図はしていなさそうな気がします。 PStore#initialize の rdoc を見ると、 # PStore objects are always reentrant. But if _thread_safe_ is set to true, # then it will become thread-safe at the cost of a minor performance hit. とあり、元の目的が超高速化なだけあって、Mutex のロックのコストを気に しているようです。ケチな話ですね。そういう意味で、 > インスタンス変数@transactionを廃して、 > Mutexがロックされているかどうか の変更は、少なくとも Hongli Lai の望むところではなさそうです。 少なくとも、上の rdoc は嘘になっているので修正する必要があります。 一応、Mutex#synchronize は DummyMutex より 2 倍以上遅いみたいです。 1 回あたりを考えるともともと無視できそうなコストですが、PStore のよ うな用途だと問題になりうるんですかね。 $ time ./ruby -e ' class DummyMutex def synchronize yield end end m = DummyMutex.new 1000000.times { m.synchronize { } } ' real 0m0.219s user 0m0.200s sys 0m0.012s $ time ./ruby -e ' m = Mutex.new 1000000.times { m.synchronize { } } ' real 0m0.527s user 0m0.492s sys 0m0.004s Hongli Lai は ruby-core でちょくちょく見かける人なので、聞けば返事を してくれるんじゃないでしょうか。この話は ruby-core で議論した方がいい のでは。 -- Yusuke Endoh <[email protected]>