Issue #4483 has been reported by Masaki Matsushita. ---------------------------------------- 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のパッチを添付します。
on 2011-03-08 06:38
on 2011-03-08 06:48
Issue #4483 has been updated by Shota Fukumori. 互換性の面が懸念されます。 たとえばnested transaction例外を想定しているコード (たとえばtest_thread_safeとか) はどうなるのでしょう。 ---------------------------------------- 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のパッチを添付します。
on 2011-03-08 06:59
Issue #4483 has been updated by Shyouhei Urabe. デフォルトがブロックするかしないかどっち向きに倒れておくべきかには議論のある所だとは思いますが、いきなり第二引数をなくしてしまうというのはやりすぎではないでしょうか。あなたの嬉しさは他者を排斥する理由としては弱いです。 ---------------------------------------- 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のパッチを添付します。
on 2011-03-08 07:23
Issue #4483 has been updated by Shota Fukumori. Shyouhei Urabe wrote: > デフォルトがブロックするかしないかどっち向きに倒れておくべきかには議論のある所だとは思いますが、いきなり第二引数をなくしてしまうというのはやりすぎではないでしょうか。あなたの嬉しさは他者を排斥する理由としては弱いです。 あまりパッチみてませんけどそれもありましたね。同意します。 せめてthread_safe = trueにしておいて、今の動作と逆転するような感じだと良いですかね? 無視するか動作を逆転させるかどちらかは別として、引数を削るのは賛成しかねます。 ---------------------------------------- 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のパッチを添付します。
on 2011-03-08 08:01
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のパッチを添付します。
on 2011-03-08 08:11
Issue #4483 has been updated by Shota Fukumori. sora_hです 考えてみればどうせblockされるわけで必ずブロック内は実行されるわけで、nested transactionはもしダメなら諦める的な感じで捕捉されることを想定しているコードなら この仕様でも良いかもしれません。transactionが起きているかどうかのコードはin_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のパッチを添付します。
on 2012-03-18 11:08
Issue #4483 has been updated by nahi. Description updated Status changed from Open to Assigned Assignee set to nahi ---------------------------------------- Feature #4483: PStoreをデフォルトで複数のスレッドから扱えるようにしたい https://bugs.ruby-lang.org/issues/4483#change-24908 Author: Glass_saga Status: Assigned Priority: Normal Assignee: nahi Category: lib Target version: =begin PStoreは、デフォルトでは他のスレッドがトランザクションを実行中にトランザクションに入ろうとすると例外nested transactionを発生させます。 initialize時に第2引数が真であれば、別のスレッドがトランザクションから抜けるまで待つようになりますが、 PStoreの用途から考えると、わざわざ引数にそのような指定をしなくても例外を投げずに待ってくれた方が嬉しいと思うのですが、いかがでしょうか。 PStore.newの第2引数を削除し、別のスレッドがトランザクションを実行中でもデフォルトで例外を投げずに待つようにしたpstore.rbと、 それに合わせて改変したtest_pstore.rbのパッチを添付します。 =end
on 2012-11-20 13:28
Issue #4483 has been updated by mame (Yusuke Endoh). Target version set to next minor ---------------------------------------- Feature #4483: PStoreをデフォルトで複数のスレッドから扱えるようにしたい https://bugs.ruby-lang.org/issues/4483#change-33230 Author: Glass_saga (Masaki Matsushita) Status: Assigned Priority: Normal Assignee: nahi (Hiroshi Nakamura) Category: lib Target version: next minor =begin PStoreは、デフォルトでは他のスレッドがトランザクションを実行中にトランザクションに入ろうとすると例外nested transactionを発生させます。 initialize時に第2引数が真であれば、別のスレッドがトランザクションから抜けるまで待つようになりますが、 PStoreの用途から考えると、わざわざ引数にそのような指定をしなくても例外を投げずに待ってくれた方が嬉しいと思うのですが、いかがでしょうか。 PStore.newの第2引数を削除し、別のスレッドがトランザクションを実行中でもデフォルトで例外を投げずに待つようにしたpstore.rbと、 それに合わせて改変したtest_pstore.rbのパッチを添付します。 =end
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.