[#43284] [Ruby 1.9 - Bug #4456] [Open] Time#strftime で %F 指定子に大きな幅を指定した際の不具合 — tadayoshi funaba <redmine@...>

14 messages 2011/03/02

[#43317] [Ruby 1.9 - Bug #4474][Open] 複数のスレッドからトランザクションに入ろうとした場合のPStoreの挙動 — Masaki Matsushita <redmine@...>

9 messages 2011/03/06

[#43327] [Ruby 1.9 - Feature #4483][Open] PStoreをデフォルトで複数のスレッドから扱えるようにしたい — Masaki Matsushita <redmine@...>

10 messages 2011/03/08

[#43365] [Ruby 1.9 - Bug #4536][Open] 定数参照について1.8と1.9の違い — Yukihiro Matsumoto <matz@...>

11 messages 2011/03/29

[ruby-dev:43331] [Ruby 1.9 - Feature #4483] PStoreをデフォルトで複数のスレッドから扱えるようにしたい

From: Masaki Matsushita <redmine@...>
Date: 2011-03-08 07:01:39 UTC
List: ruby-dev #43331
Issue #4483 has been updated by Masaki Matsushita.


PStoreはRubyのオブジェクトを外部ファイルに格納する為のクラスな訳ですから、あるスレッドがトランザクションを実行中に別のスレッドがトランザクションに入ろうとした場合に、整合性を保つ為に同期する理由はあっても、例外を投げる理由はないのではと考えました。

そこで第2引数を削除したパッチを添付したのですが、確かにいきなり第2引数をなくしてしまうというのはやりすぎだったかも知れません。
それと、私が嬉しいかどうかをこういう場で引き合いに出したのは正しくなかったと思います。

Shota Fukumoriさんの案に賛成します。
ただ、thread_safe = trueとした場合でも、PStore.newに第2引数を与えずにnested transaction例外を想定しているコードには影響してしまいますね。
----------------------------------------
Feature #4483: PStoreをデフォルトで複数のスレッドから扱えるようにしたい
http://redmine.ruby-lang.org/issues/4483

Author: Masaki Matsushita
Status: Open
Priority: Normal
Assignee: 
Category: lib
Target version: 


PStoreは、デフォルトでは他のスレッドがトランザクションを実行中にトランザクションに入ろうとすると例外nested transactionを発生させます。

initialize時に第2引数が真であれば、別のスレッドがトランザクションから抜けるまで待つようになりますが、
PStoreの用途から考えると、わざわざ引数にそのような指定をしなくても例外を投げずに待ってくれた方が嬉しいと思うのですが、いかがでしょうか。

PStore.newの第2引数を削除し、別のスレッドがトランザクションを実行中でもデフォルトで例外を投げずに待つようにしたpstore.rbと、
それに合わせて改変したtest_pstore.rbのパッチを添付します。


-- 
http://redmine.ruby-lang.org

In This Thread