cql-rb 2.1.0.pre0 → 2.1.0.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a2e1e800f2f73c9c9dd0c2beedaf55851174362
|
4
|
+
data.tar.gz: bf02fef5b52739fd1954f3ffcc4322a5c7ff1c01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: edfc218ddb4b1b5b1ca3f8d0a4fd0888e9bfa9bdc9b1ac974cf881e1dc9b853adc44d5b940fe3f953d6647beac297f99d8614fd36e1dc8ad1892fde752f2e9f1
|
7
|
+
data.tar.gz: f6ced79805a70ea44f4b3844480f56dbbd82bcbaaacbe86c2ad75725e9563d5c5f2d78a08d15bfd763ec4964251c1461eadb9f4cfde4112b0841729deba7bfc5
|
@@ -203,7 +203,6 @@ module Cql
|
|
203
203
|
complete_request(id, @current_frame.body)
|
204
204
|
end
|
205
205
|
@current_frame = @frame_decoder.decode_frame(@read_buffer)
|
206
|
-
flush_request_queue
|
207
206
|
end
|
208
207
|
end
|
209
208
|
|
@@ -233,6 +232,7 @@ module Cql
|
|
233
232
|
if response.is_a?(Protocol::SetKeyspaceResultResponse)
|
234
233
|
@keyspace = response.keyspace
|
235
234
|
end
|
235
|
+
flush_request_queue
|
236
236
|
unless promise.timed_out?
|
237
237
|
promise.fulfill(response)
|
238
238
|
end
|
@@ -256,7 +256,7 @@ module Cql
|
|
256
256
|
if @request_queue_out.any? && (id = next_stream_id)
|
257
257
|
promise = @request_queue_out.shift
|
258
258
|
if promise.timed_out?
|
259
|
-
|
259
|
+
next
|
260
260
|
else
|
261
261
|
frame = promise.frame
|
262
262
|
@promises[id] = promise
|
data/lib/cql/version.rb
CHANGED
@@ -112,6 +112,16 @@ module Cql
|
|
112
112
|
futures[128].should be_resolved
|
113
113
|
end
|
114
114
|
|
115
|
+
it 'flushes the request queue before it resolves the future of the just completed request' do
|
116
|
+
connection.stub(:write)
|
117
|
+
futures = Array.new(130) { protocol_handler.send_request(request) }
|
118
|
+
f = futures[0].map do
|
119
|
+
connection.should have_received(:write).exactly(129).times
|
120
|
+
end
|
121
|
+
connection.data_listener.call([0x81, 0, 0, 2, 0].pack('C4N'))
|
122
|
+
f.value
|
123
|
+
end
|
124
|
+
|
115
125
|
context 'when a compressor is specified' do
|
116
126
|
let :protocol_handler do
|
117
127
|
described_class.new(connection, scheduler, 1, compressor)
|
@@ -248,6 +258,27 @@ module Cql
|
|
248
258
|
128.times { |i| connection.data_listener.call([0x81, 0, i, 2, 0].pack('C4N')) }
|
249
259
|
write_count.should == 128
|
250
260
|
end
|
261
|
+
|
262
|
+
it 'does not stop sending queued requests even when one has timed out' do
|
263
|
+
write_count = 0
|
264
|
+
connection.stub(:write) do |s, &h|
|
265
|
+
write_count += 1
|
266
|
+
if h
|
267
|
+
h.call(buffer)
|
268
|
+
else
|
269
|
+
buffer << s
|
270
|
+
end
|
271
|
+
end
|
272
|
+
128.times do
|
273
|
+
protocol_handler.send_request(request)
|
274
|
+
end
|
275
|
+
scheduler.stub(:schedule_timer).with(5).and_return(timer_promise.future)
|
276
|
+
f1 = protocol_handler.send_request(request, 5)
|
277
|
+
f2 = protocol_handler.send_request(request)
|
278
|
+
timer_promise.fulfill
|
279
|
+
connection.data_listener.call([0x81, 0, 0, 2, 0].pack('C4N'))
|
280
|
+
write_count.should == 129
|
281
|
+
end
|
251
282
|
end
|
252
283
|
end
|
253
284
|
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cql-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.0.
|
4
|
+
version: 2.1.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Theo Hultberg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ione
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.2.0.pre3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.2.0.pre3
|
27
27
|
description: A pure Ruby CQL3 driver for Cassandra
|