diff --git lib/pstore.rb lib/pstore.rb index 3114eb5..7067f5c 100644 --- lib/pstore.rb +++ lib/pstore.rb @@ -119,7 +119,7 @@ class PStore # 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. # - def initialize(file, thread_safe = false) + def initialize(file) dir = File::dirname(file) unless File::directory? dir raise PStore::Error, format("directory %s does not exist", dir) @@ -130,7 +130,6 @@ class PStore @filename = file @abort = false @ultra_safe = false - @thread_safe = thread_safe @lock = Mutex.new end @@ -313,7 +312,6 @@ class PStore # def transaction(read_only = false, &block) # :yields: pstore value = nil - raise PStore::Error, "nested transaction" if !@thread_safe && @lock.locked? @lock.synchronize do @rdonly = read_only @abort = false diff --git test/test_pstore.rb test/test_pstore.rb index 32d79ea..fdd85ae 100644 --- test/test_pstore.rb +++ test/test_pstore.rb @@ -73,20 +73,8 @@ class PStoreTest < Test::Unit::TestCase end def test_thread_safe - assert_raise(PStore::Error) do - flag = false - Thread.new do - @pstore.transaction do - @pstore[:foo] = "bar" - flag = true - sleep 1 - end - end - until flag; end - @pstore.transaction {} - end assert_block do - pstore = PStore.new("pstore.tmp2.#{Process.pid}",true) + pstore = PStore.new("pstore.tmp2.#{Process.pid}") flag = false Thread.new do pstore.transaction do