Sha256: ea97187d1675735497ec314d2359b5bb1f8cc5cd36e8cde586f7d7f4bf9639de
Contents?: true
Size: 917 Bytes
Versions: 5
Compression:
Stored size: 917 Bytes
Contents
shared_examples_for 'is thread-safe' do it "is safe to use one-by-one" do upsert = Upsert.new connection, :pets assert_creates(Pet, [{:name => 'Jerry', :gender => 'neutered'}]) do ts = [] 10.times do ts << Thread.new do sleep 0.2 upsert.row({:name => 'Jerry'}, :gender => 'male') upsert.row({:name => 'Jerry'}, :gender => 'neutered') end ts.each { |t| t.join } end end end it "is safe to use batch" do assert_creates(Pet, [{:name => 'Jerry', :gender => 'neutered'}]) do Upsert.batch(connection, :pets) do |upsert| ts = [] 10.times do ts << Thread.new do sleep 0.2 upsert.row({:name => 'Jerry'}, :gender => 'male') upsert.row({:name => 'Jerry'}, :gender => 'neutered') end ts.each { |t| t.join } end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
upsert-0.3.4 | test/shared/threaded.rb |
upsert-0.3.3 | test/shared/threaded.rb |
upsert-0.3.2 | test/shared/threaded.rb |
upsert-0.3.1 | test/shared/threaded.rb |
upsert-0.3.0 | test/shared/threaded.rb |