ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
From: Masaki Matsushita <redmine@ruby-lang.org>
To: ruby-dev@ruby-lang.org (ruby developers list),
	"undisclosed-recipients:"@ruby-lang.org
Subject: [ruby-dev:43331] [Ruby 1.9 - Feature #4483] PStoreをデフォルトで複数のスレッドから扱えるようにしたい
Date: Tue, 8 Mar 2011 16:01:39 +0900	[thread overview]
Message-ID: <redmine.journal-16087.20110308160138@ruby-lang.org> (raw)
In-Reply-To: redmine.issue-4483.20110308143654@ruby-lang.org


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

  parent reply	other threads:[~2011-03-08  6:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-08  5:37 [ruby-dev:43327] [Ruby 1.9 - Feature #4483][Open] PStoreをデフォルトで複数のスレッドから扱えるようにしたい Masaki Matsushita
2011-03-08  5:47 ` [ruby-dev:43328] [Ruby 1.9 - Feature #4483] PStoreをデフォルトで複数のスレッドから扱えるようにしたい Shota Fukumori
2011-03-08  5:59 ` [ruby-dev:43329] " Shyouhei Urabe
2011-03-08  6:23 ` [ruby-dev:43330] " Shota Fukumori
2011-03-08  7:01 ` Masaki Matsushita [this message]
2011-03-08  7:11 ` [ruby-dev:43332] " Shota Fukumori
2012-03-18 10:08 ` [ruby-dev:45395] [ruby-trunk - Feature #4483][Assigned] PStoreをデフォルトで複数のスレッドから扱えるようにしたい nahi
2012-11-20 12:27 ` [ruby-dev:46558] [ruby-trunk - Feature #4483] PStoreをデフォルトで複数のスレッドから扱えるようにしたい mame (Yusuke Endoh)
2018-03-08  8:46 ` [ruby-dev:50492] [Ruby trunk Feature#4483][Feedback] PStoreをデフォルトで複数のスレッドから扱えるようにしたい mame
2018-03-08 14:04 ` [ruby-dev:50495] [Ruby trunk Feature#4483] PStoreをデフォルトで複数のスレッドから扱えるようにしたい glass.saga

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.ruby-lang.org/en/community/mailing-lists/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=redmine.journal-16087.20110308160138@ruby-lang.org \
    --to=ruby-dev@ruby-lang.org \
    --cc="undisclosed-recipients:"@ruby-lang.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).