Sha256: fd3295d779bbe448b11cc610c32ba165443a93045e6688dab550a8f1cfb09f34
Contents?: true
Size: 922 Bytes
Versions: 5
Compression:
Stored size: 922 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 streaming" do assert_creates(Pet, [{:name => 'Jerry', :gender => 'neutered'}]) do Upsert.stream(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.2.2 | test/shared/threaded.rb |
upsert-0.2.1 | test/shared/threaded.rb |
upsert-0.2.0 | test/shared/threaded.rb |
upsert-0.1.2 | test/shared/threaded.rb |
upsert-0.1.1 | test/shared/threaded.rb |