[前][次][番号順一覧][スレッド一覧]

ruby-changes:19063

From: sorah <ko1@a...>
Date: Sun, 13 Mar 2011 16:22:05 +0900 (JST)
Subject: [ruby-changes:19063] Ruby:r31101 (trunk): * lib/pstore.rb: Fix don't raise "nested transaction" when thread_safe

sorah	2011-03-13 16:14:07 +0900 (Sun, 13 Mar 2011)

  New Revision: 31101

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31101

  Log:
    * lib/pstore.rb: Fix don't raise "nested transaction" when thread_safe
      is true. Patch by Masaki Matsushita (Glass_saga). [ruby-dev:43337]
    
    * test/test_pstore.rb: Test for above.
      Patch by Masaki Matsushita (Glass_saga) [ruby-dev:43337]

  Modified files:
    trunk/ChangeLog
    trunk/lib/pstore.rb
    trunk/test/test_pstore.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31100)
+++ ChangeLog	(revision 31101)
@@ -1,3 +1,11 @@
+Sun Mar 13 16:07:58 2011  Shota Fukumori  <sorah@t...>
+
+	* lib/pstore.rb: Fix don't raise "nested transaction" when thread_safe
+	  is true. Patch by Masaki Matsushita (Glass_saga). [ruby-dev:43337]
+
+	* test/test_pstore.rb: Test for above.
+	  Patch by Masaki Matsushita (Glass_saga) [ruby-dev:43337]
+
 Sat Mar 12 04:12:41 2011  Tanaka Akira  <akr@f...>
 
 	* ext/openssl/ossl_ssl_session.c: parenthesize macro arguments.
Index: lib/pstore.rb
===================================================================
--- lib/pstore.rb	(revision 31100)
+++ lib/pstore.rb	(revision 31101)
@@ -341,6 +341,8 @@
       end
     end
     value
+  rescue ThreadError
+    raise PStore::Error, "nested transaction"
   end
 
   private
Index: test/test_pstore.rb
===================================================================
--- test/test_pstore.rb	(revision 31100)
+++ test/test_pstore.rb	(revision 31101)
@@ -100,4 +100,14 @@
       File.unlink("pstore.tmp2.#{Process.pid}") rescue nil
     end
   end
+  
+  def test_nested_transaction_raises_error
+    assert_raise(PStore::Error) do
+      @pstore.transaction { @pstore.transaction { } }
+    end
+    pstore = PStore.new("pstore.tmp2.#{Process.pid}", true)
+    assert_raise(PStore::Error) do
+      pstore.transaction { pstore.transaction { } }
+    end
+  end
 end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]